Je travaille actuellement sur le tutoriel de CodeIgniters dans sa documentation fantastique. Cependant, il existe un terme fréquemment utilisé appelé "slug". J'ai beaucoup regardé autour de moi pour savoir ce que signifie le terme et je ne peux pas comprendre ce que c'est et à quoi il sert. Voici un exemple de son utilisation:
Avec ce code, vous pouvez effectuer deux requêtes différentes. Vous pouvez obtenir tout enregistrements de nouvelles, ou obtenir un article de nouvelles par sa limace
Un slug fait partie de l'URL lorsque vous accédez à une ressource. Supposons que vous ayez une URL telle que celle ci-dessous, qui affiche toutes les voitures de votre système:
http://localhost/cars
Lorsque vous souhaitez référencer une voiture particulière dans votre système, vous devez fournir l'URL suivante:
http://localhost/cars/audi-a6/
Notez que l'URL est toujours très logique et très convivial. En ce qui concerne l'utilisation de la limace, c'est à votre propre discrétion. La chaîne audi-a6 ci-dessus peut être un identificateur unique pour une voiture de votre système. Supposons que vous disposiez d'une base de données relationnelle avec les champs suivants:
id
car_name
car_brand
car_unique_identifier
Le champ car_unique_identifier serait alors utilisé pour stocker les valeurs affichées dans le slug; Dans l'exemple que j'ai spécifié ci-dessus avec une voiture Audi A6, c'est l'endroit où votre chaîne audi-a6 vivra.
Vous pouvez également l’utiliser de différentes manières - par exemple, si vous avez un contrôleur posts /, qui fonctionne comme un blog. Le titre d'une page peut être le slug de cette page, s'il s'agit d'une URL encodée. Pour notre article intitulé "Meilleurs moyens d'améliorer le référencement", vous pouvez indiquer l'URL suivante:
http://localhosts/posts/best-ways-to-make-seo-better
Vous exécuteriez ensuite url_decode () sur le slug, et vous obtiendriez la chaîne meilleures méthodes pour améliorer le référencement, que vous pouvez utiliser pour trouver un message via son titre.
Il n'est pas nécessaire que cela s'arrête là: vous pouvez décider d'avoir plusieurs slugs pour représenter quelque chose. Voyons comment la BBC le fait. J'ai pris un article au hasard de aujourd'hui, qui a l'URL suivante:
http://www.bbc.co.uk/news/world-africa-24506006
Ceci est lié à un article intitulé: L'Union africaine exhorte la CPI à abandonner les poursuites contre des dirigeants}. La façon dont la BBC le fait est d'utiliser la dernière partie du slug world-africa-24506006, qui est 24506006, pour identifier une entrée unique dans leur système. Ensuite, ils utilisent probablement (world-africa) pour désigner la catégorie à laquelle un message appartient (bien que cela puisse n'être qu'une hypothèse, il s'agit toujours d'une supposition éclairée).
Enfin, imaginons le tableau DB suivant, pour les travaux de recherche.
id
category
title
Vous pouvez avoir un exemple qui fonctionne comme celui ci-dessous.
http://localhost/papers
Cette URL représente tous les documents de recherche actuellement dans le système. Vous pourrez alors accéder à tous les documents de recherche sur la physique via le slug suivant:
http://localhost/papers/physics
Notre slug est physique}, et notre base de données sélectionnée ressemble actuellement à quelque chose comme:
SELECT *
FROM papers
WHERE LOWER(papers.category) = 'physics'
Vous pouvez ensuite exposer l'URL suivante:
http://localhost/papers/physics/gravitation
Maintenant, notre limace est composée de physique et gravitation . Notre requête en coulisse peut ressembler à quelque chose comme:
SELECT *
FROM papers
WHERE LOWER(papers.category) = 'physics'
AND LOWER(papers.title) = 'gravitation'
Cela nous permet d’identifier de manière unique une entrée dans notre système.
Nous avons donc utilisé les slugs à plusieurs reprises afin de filtrer nos informations. Dans l'exemple, lorsque nous avons exécuté l'URL sans slug:
http://localhost/papers
Nous voulions énumérer tous les documents de recherche disponibles. Lorsque nous avons exécuté l'URL avec le slug physique:
http://localhost/papers/physics
Nous voulions répertorier tous les documents de recherche sur physique, réduisant ainsi nos résultats. Enfin, lorsque nous avons fourni deux limaces, nous pouvions uniquement identifier une entrée dans notre système.
http://localhost/papers/physics/gravitation
Aurions-nous pu modéliser cela différemment? Bien sûr! Selon les exigences de notre système, nous pouvons normaliser et dénormaliser nos tables relationnelles. Nous aurions pu avoir un système de permalien en place, de sorte que notre table des posts ressemble à ceci:
id
title
permalink
Nous aurions alors pu avoir l'entrée suivante:
| 20013 | Gravitation | physics-gravitation-breakthrough |
Ainsi, exposant l'URL:
http://localhost/papers/physics-gravitation-breakthrough
Dans l'exemple ci-dessus, le slug physics-gravitation-percée nous permet d'identifier de manière unique un message via:
SELECT *
FROM papers
WHERE papers.permalink = physics-gravitation-breakthrough
Réponse courte
C'est la partie what-is-a-slug
dans l'URL de cette question.
"slug" est totalement dépendant du contexte Word, mais en programmation ou en ce qui concerne cette question, "slug" fait référence à une URL. Nous savons qu'une URL ne peut pas contenir tous les caractères . C’est pourquoi, lorsqu’un message, une page ou un contrôleur ont été saisis dans le titre, le slug est utilisé comme URL. Ce qui pourrait être automatiquement dérivé.
Donc, dans une ligne, slug est une version conviviale URL de n’importe quel nom.
Toutes les réponses données ci-dessus sont correctes, mais je souhaite répondre directement à la question . Slug dans l'exemple du didacticiel Codeigniter, renvoie à l'URL " news ". Si vous n'avez pas "news" comme $ slug ou slug dans votre base de données et que vous exécutez cette URL dans votre navigateur, "index.php/news/view" renverra l'erreur 404_page non trouvée . J'ai rencontré ce problème jusqu'à ce que J'ai lu les réponses ci-dessus qui m'ont permis de comprendre ce que Slug voulait dire ... Je modifie mon slug en informations dans le tableau de la base de données . Slug est comme un pointeur.
Voici un exemple de limace:
<?php
function create_slug($string){
$slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $string);
return $slug;
}
echo create_slug('does this thing work or not');
//returns 'does-this-thing-work-or-not'
?>