Maison >développement back-end >tutoriel php >Astuce Joomla : utilisez la classe Joomla\Uri\Uri pour créer une URL.
Lors de la création d'URL dans le code, vous pouvez utiliser la concaténation de chaînes pour collecter toutes les chaînes :
<code class="language-php">$url = $domain.'/index.php?option='.$option.'&view='.$view.'¶m1='.$value1;</code>
Cette approche est même pratique pour les chaînes courtes. Cependant, cela n’est pas aussi pratique et intuitif s’il existe de nombreux paramètres ou s’il faut les normaliser/nettoyer au cours du processus. Par exemple, une partie de l'URL peut contenir une barre oblique (la barre oblique au début du fragment d'URL), et le nom de domaine entrant de la requête peut également se terminer par une barre oblique, nous obtenons donc une mauvaise URL avec une double barre oblique quelque part. au milieu ……
Pour standardiser et unifier les tâches de récupération d'URL, Joomla fournit la classe JoomlaUriUri. Dans Joomla 1.6 et versions antérieures, il s'appelait JUri. Cette classe gère les URL selon la norme RFC3986 et est responsable de l'analyse ou de l'assemblage des URL à partir de leurs différentes parties.
<code class="language-php">use Joomla\Uri\Uri; $url = 'https://web-tolk.ru/dev/biblioteki?param=value'; $uri = new Uri($url); // 此处输出'value' echo $uri->getVar('param');</code>
Vous pourriez dire, oui, il existe une fonction PHP native parse_url
... mais la classe Uri garantit des opérations sécurisées sur les caractères UTF-8 dans les URL, y compris les noms de domaine cyrilliques. Pour éviter de rédiger vous-même divers chèques, vous pouvez utiliser les fonctionnalités principales de Joomla.
C'est aussi très simple ici :
<code class="language-php">use Joomla\Uri\Uri; $uri = new Uri; $uri->setHost('web-tolk.ru'); $uri->setScheme('https'); // setPath()以前导斜杠开头 $uri->setPath('/dev/biblioteki'); // GET参数可以作为数组传递 $vars = [ 'param1' => 'value1', 'param2' => 'value2', 'param3' => 'value3', ]; $uri->setQuery($vars); // 将URL作为字符串输出 echo $uri->toString();</code>
La structure hiérarchique de la classe Uri dans Joomla est conçue de telle sorte que la méthode getter se trouve dans la classe AbstractUri et la méthode setter se trouve dans la classe Uri. Vous pouvez afficher la méthode setter dans le fichier libraries/vendor/joomla/uri/src/Uri.php. Vous pouvez afficher la méthode getter dans le fichier libraries/vendor/joomla/uri/src/AbstractUri.php.
Si vous utilisez PHPStorm, il comprend parfaitement Joomla et vous dira tout ce dont vous avez besoin.
Vous pouvez vous référer à l'ancienne page de documentation, qui est encore largement applicable et a été adaptée pour l'utilisation des espaces de noms.
Structure Uri :
<code> foo://example.com:8042/over/there?name=ferret#nose \_/ \______________/\_________/ \_________/ \__/ | | | | | scheme authority path query fragment</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!