Uma lesma é uma parte da URL quando você está acessando um recurso. Digamos que você tenha uma URL, como a abaixo, que exibe todos os carros do seu sistema:
http://localhost/cars
Quando você quer referenciar um carro em particular no seu sistema, você deve fornecer a seguinte URL:
http://localhost/cars/audi-a6/
Note como a URL ainda é muito lógica, e muito amigável em termos de SEO. Em termos de uso da lesma, isso fica a seu critério. A string audi-a6 acima pode ser um identificador único para um carro no seu sistema – digamos que você tenha um banco de dados relacional com os seguintes campos:
idcar_namecar_brandcar_unique_identifier
O campo car_unique_identifier
seria então usado para armazenar os valores que são exibidos na lesma; no exemplo que especifiquei acima com um carro Audi A6, este é o local onde a sua string audi-a6 viveria.
Você pode usá-lo de outras formas também – por exemplo, se você tiver um controlador de posts que funcione como um blog. O título de uma página pode ser o slug para ela, se ela estiver com a URL codificada. Para o nosso artigo chamado “Melhores maneiras de fazer SEO melhor”, você pode fornecer a seguinte URL:
http://localhosts/posts/best-ways-to-make-seo-better
Você então rodaria url_decode()
na lesma, e você obteria a string melhores maneiras de fazer seo melhor, que você pode usar para encontrar um post através do seu título.
Não precisa parar por aí – você pode decidir ter múltiplas lesmas para representar algo – vamos dar uma olhada em como a BBC está fazendo isso. Eu peguei um artigo aleatório de hoje, que tem a seguinte URL:
http://www.bbc.co.uk/news/world-africa-24506006
Este link para um artigo nomeado: A União Africana insta a ICC a desistir de casos contra líderes. A forma como a BBC está fazendo isso é que eles usam a última parte do slug world-africa-24506006, que é 24506006, para identificar uma entrada única em seu sistema. Eles então muito provavelmente usam world-africa para denotar a categoria a que um post pertence (embora isso possa ser apenas uma suposição, ainda é um palpite educado).
Finalmente, vamos imaginar a seguinte tabela DB, para artigos de pesquisa.
idcategorytitle
Você pode ter um exemplo que funciona como o que está abaixo.
http://localhost/papers
Esta URL representa todos os artigos de pesquisa atualmente no sistema. Você poderá então acessar todos os artigos de pesquisa sobre física através da seguinte lesma:
http://localhost/papers/physics
Nossa lesma é física, e nossa seleção de banco de dados atualmente se parece com:
SELECT *FROM papersWHERE LOWER(papers.category) = 'physics'
Você poderá então expor a seguinte URL:
http://localhost/papers/physics/gravitation
Agora nossa lesma é composta de física e gravitação. Nossa consulta nos bastidores pode parecer algo como:
SELECT *FROM papersWHERE LOWER(papers.category) = 'physics'AND LOWER(papers.title) = 'gravitation'
Isso nos permite identificar uma entrada única em nosso sistema.
Então temos usado lesmas repetidamente para filtrar nossas informações. No exemplo, quando executamos a URL sem nenhuma lesma:
http://localhost/papers
Quisemos listar todos os trabalhos de pesquisa disponíveis. Quando corremos a URL com a lesma física:
http://localhost/papers/physics
Quisemos listar todos os artigos de pesquisa sobre física, estreitando assim os nossos resultados. Finalmente, quando fornecemos duas lesmas, pudemos identificar uma entrada única no nosso sistema.
http://localhost/papers/physics/gravitation
Podemos ter modelado isto de forma diferente? Claro que sim! Dependendo dos requisitos do nosso sistema, podemos normalizar e desnormalizar as nossas tabelas relacionais. Poderíamos ter tido um sistema de permalink no lugar, de modo que a nossa tabela de posts fosse assim:
id title permalink
Poderíamos então ter tido a seguinte entrada:
| 20013 | Gravitation | physics-gravitation-breakthrough |
Assim expondo a URL:
http://localhost/papers/physics-gravitation-breakthrough
No exemplo acima, o slug physics-gravitation-breakthrough permite-nos identificar de forma única um post via:
SELECT * FROM papers WHERE papers.permalink = physics-gravitation-breakthrough