Maison > développement back-end > tutoriel php > Astuce Joomla : utilisez la classe Joomla\Uri\Uri pour créer une URL.

Astuce Joomla : utilisez la classe Joomla\Uri\Uri pour créer une URL.

Patricia Arquette
Libérer: 2025-01-16 20:17:10
original
333 Les gens l'ont consulté

Joomla tip: Use the JoomlaUriUri class to create a 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.'&param1='.$value1;</code>
Copier après la connexion

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.

Exemple : obtenir des paramètres spécifiques à partir de l'URL

<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>
Copier après la connexion

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.

Comment créer l'URL requise dans le code 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>
Copier après la connexion

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>
Copier après la connexion

Ressources communautaires Joomla

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal