web-dev-qa-db-fra.com

Qu'est-ce qu'une limace?

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

30
davidbenjamin998

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
70
Petre Pătraşc

Réponse courte

C'est la partie what-is-a-slug dans l'URL de cette question.

11
oluckyman

"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.

4
Vaibhav Singh

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.

0

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'
  ?>
0
Vijay Chauhan