wake-up-neo.net

Was ist eine Schnecke?

Ich arbeite gerade durch das CodeIgniters-Tutorial in seiner fantastischen Dokumentation. Es gibt jedoch einen häufig verwendeten Begriff, der als "Slug" bezeichnet wird. Ich habe viel nachgeschaut, um herauszufinden, was der Begriff bedeutet, und ich kann nicht verstehen, was es ist und wozu es dient. Hier ist ein Beispiel, wann es verwendet wird:

Mit diesem Code können Sie zwei verschiedene Abfragen durchführen. Sie können alles bekommen Nachrichten oder erhalten Sie eine Nachricht von ihrem Slug

30

Ein Slug ist Teil der URL, wenn Sie auf eine Ressource zugreifen. Angenommen, Sie haben eine URL wie die unten stehende, die alle Autos in Ihrem System anzeigt:

http://localhost/cars

Wenn Sie ein bestimmtes Fahrzeug in Ihrem System referenzieren möchten, geben Sie die folgende URL an:

http://localhost/cars/audi-a6/

Beachten Sie, dass die URL immer noch sehr logisch und SE-freundlich ist. In Bezug auf die Verwendung des Slugs liegt dies in Ihrem eigenen Ermessen. Die Zeichenfolge audi-a6 kann eine eindeutige Kennung für ein Auto in Ihrem System sein. Angenommen, Sie verfügen über eine relationale Datenbank mit den folgenden Feldern:

id
car_name
car_brand
car_unique_identifier

Das Feld car_unique_identifier würde dann zum Speichern der Werte verwendet werden, die im Slug angezeigt werden. In dem Beispiel, das ich oben für ein Audi A6-Auto angegeben habe, würde hier Ihre audi-a6 -Saite leben.

Sie können es auch auf andere Weise verwenden - zum Beispiel, wenn Sie einen posts - Controller haben, der wie ein Blog funktioniert. Der Titel einer Seite kann der Slug für sie sein, wenn sie URL-kodiert ist. Für unseren Artikel mit dem Titel "Beste Möglichkeiten zur Verbesserung von SEO" können Sie die folgende URL angeben:

http://localhosts/posts/best-ways-to-make-seo-better

Sie würden dann url_decode () auf dem Slug ausführen und die Zeichenfolge beste Methoden erhalten, um seo besser zu machen, die Sie verwenden können, um einen Beitrag über den Titel zu finden.

Es muss nicht dort aufhören - Sie können sich entscheiden, mehrere Slugs zu haben, um etwas darzustellen - werfen wir einen Blick darauf, wie BBC das macht. Ich habe heute einen zufälligen Artikel mit der folgenden URL ausgewählt:

http://www.bbc.co.uk/news/world-africa-24506006

Dieser Link führt zu einem Artikel mit dem Namen: African Union fordert den ICC auf, die Verfahren gegen die Staatsanwaltschaft einzustellen. Die Art und Weise, wie BBC dies tut, besteht darin, dass sie den letzten Teil des Slugs world-africa-24506006 verwenden, dh 24506006, um einen eindeutigen Eintrag in ihrem System zu identifizieren. Sie verwenden dann höchstwahrscheinlich world-africa, um die Kategorie zu bezeichnen, zu der ein Beitrag gehört (obwohl dies nur eine Annahme sein kann, ist es immer noch eine fundierte Vermutung).

Schließlich stellen wir uns die folgende DB-Tabelle für Forschungsarbeiten vor.

id
category
title

Möglicherweise haben Sie ein Beispiel, das wie das folgende funktioniert. 

http://localhost/papers

Diese URL stellt alle im System befindlichen Forschungsarbeiten dar. Sie können dann auf alle Forschungsarbeiten zur Physik über folgenden Slug zugreifen:

http://localhost/papers/physics

Unser Slug ist physics, und unsere Datenbankauswahl sieht derzeit ungefähr so ​​aus:

SELECT *
FROM papers
WHERE LOWER(papers.category) = 'physics'

Sie können dann die folgende URL verfügbar machen:

http://localhost/papers/physics/gravitation

Jetzt besteht unsere Schnecke aus Physik und Gravitation . Unsere Abfrage hinter den Kulissen sieht etwa so aus:

SELECT *
FROM papers
WHERE LOWER(papers.category) = 'physics'
AND LOWER(papers.title) = 'gravitation'

Dadurch können wir einen Eintrag in unserem System eindeutig identifizieren.

Daher haben wir wiederholt Slugs verwendet, um unsere Informationen herauszufiltern. Wenn wir im Beispiel die URL ohne Slugs ausgeführt haben:

http://localhost/papers

Wir wollten alle verfügbaren Forschungsarbeiten auflisten. Wenn wir die URL mit dem Slug physics ausgeführt haben:

http://localhost/papers/physics

Wir wollten alle Forschungsarbeiten zu Physik auflisten und so unsere Ergebnisse einschränken. Wenn wir schließlich zwei Slugs zur Verfügung stellten, konnten wir einen Eintrag in unserem System eindeutig identifizieren.

http://localhost/papers/physics/gravitation

Könnten wir das anders modelliert haben? Na sicher! Abhängig von den Anforderungen unseres Systems können wir unsere relationalen Tabellen normalisieren und denormalisieren. Wir hätten ein Permalink-System haben können, so dass unser Pfostentisch so aussah:

 id
 title
 permalink

Wir hätten dann folgenden Eintrag gehabt:

 | 20013 | Gravitation | physics-gravitation-breakthrough |

So enthüllt die URL:

 http://localhost/papers/physics-gravitation-breakthrough

Im obigen Beispiel ermöglicht der Slug Physics-Gravitation-Durchbruch die eindeutige Identifizierung eines Posts über:

 SELECT *
 FROM papers
 WHERE papers.permalink = physics-gravitation-breakthrough
70
Petre Pătraşc

Kurze Antwort

Es ist der what-is-a-slug-Teil in der URL dieser Frage.

11
oluckyman

"Slug" ist vollständig kontextabhängiges Word, aber in der Programmierung oder in dieser Frage bezieht sich "Slug" auf eine URL. Wir wissen, dass eine URL nicht jedes Zeichen enthalten kann . Wenn also ein Post, eine Seite oder ein Controller diese als Titel eingegeben hat, wird der Slug als URL verwendet. Welcher könnte automatisch abgeleitet werden.

In einer Zeile ist Slug eine URL-freundliche Version mit einem beliebigen Namen.

4
Vaibhav Singh

Alle oben angegebenen Antworten sind korrekt, aber ich möchte direkt auf die Frage antworten Slug Im Codeigniter-Tutorial bezieht sich das Beispiel auf die URL " news ". Wenn Sie keine "news" als $ slug oder slug in Ihrer Datenbank haben und diese URL in Ihrem Browser ausführen, wird "index.php/news/view" den Fehler 404_page nicht gefunden. Ich habe dieses Problem bis Ich habe die obigen Antworten gelesen, die mir verstanden haben, was Slug bedeutet ... Ich ändere meinen Slug zu News in der Datenbanktabelle.

0

Das Folgende ist ein Beispiel für einen Slug:

 <?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