Constrói os sitemaps para páginas, imagens e arquivos de mídia e fornece uma classe para enviá -los aos mecanismos de pesquisa.
A maneira recomendada de instalar o componente Sitemap é através do compositor. Execute o seguinte comando para instalá -lo:
php composer.phar require nilportugues/sitemap-componentEsse componente cria mapas de sitiets suportados pelos principais mecanismos de pesquisa, Google e Bing, nos formatos XML e GZIP.
O componente Sitemap é capaz de criar os seguintes tipos de sitemaps:
Um sitemap que serve como um índice que contém referências a outros arquivos sitemap.xml. Mais documentação pode ser encontrada aqui.
Sitemaps de texto de conteúdo de texto, o tipo de mapa mais comum encontrado na Internet. Mais documentação pode ser encontrada aqui.
Sitemap for para imagens. Mais documentação pode ser encontrada aqui.
Sitemap para vídeos. Mais documentação pode ser encontrada aqui.
Alternativa para sitemaps de vídeo. Mais documentação pode ser encontrada aqui.
Sitemap para artigos de notícias. Mais documentação pode ser encontrada aqui.
O componente do sitemap segue 100% dos padrões, o que significa que segue estritamente os contínuos:
<url> . Este componente também fornece um método para enviar os sitemaps gerados aos seguintes mecanismos de pesquisa:
<?php
use NilPortugues Sitemap SubmitSitemap ;
// $status = ['google' => true, 'bing' => true]; if everything went OK.
$ status = SubmitSitemap :: send ( ' http://example.com/sitemap-index.xml ' );Para usar um índice de mapa do site, você precisa criar os arquivos Sitemap primeiro. Confira 4.3, 4.4 e 4.5.
use NilPortugues Sitemap IndexSitemap ;
use NilPortugues Sitemap Item Index IndexItem ;
use NilPortugues Sitemap SitemapException ;
try {
$ sitemap = new IndexSitemap ( ' path/to/folder ' , ' sitemap.index.xml ' );
$ item = new IndexItem ( ' http://www.example.com/sitemap.content.xml ' );
$ item -> setLastMod ( ' 2005-05-10T17:33:30+08:00 ' ); //Optional
$ sitemap -> add ( $ item );
$ item = new IndexItem ( ' http://www.example.com/sitemap.media.xml ' );
$ item -> setLastMod ( ' 2005-05-10T17:33:30+08:00 ' );
$ sitemap -> add ( $ item );
$ sitemap -> build ();
} catch ( SitemapException $ e ) {
echo $ e -> getMessage ();
}<? xml version = " 1.0 " encoding = " UTF-8 " ?>
< sitemapindex xmlns = " http://www.sitemaps.org/schemas/sitemap/0.9 " >
< sitemap >
< loc >http://www.example.com/sitemap.content.xml</ loc >
< lastmod >2005-05-10T17:33:30+08:00</ lastmod >
</ sitemap >
< sitemap >
< loc >http://www.example.com/sitemap.media.xml</ loc >
< lastmod >2005-05-10T17:33:30+08:00</ lastmod >
</ sitemap >
</ sitemapindex > use NilPortugues Sitemap Sitemap ;
use NilPortugues Sitemap Item Url UrlItem ;
use NilPortugues Sitemap SitemapException ;
try {
$ sitemap = new Sitemap ( ' path/to/folder ' , ' sitemap.index.xml ' );
$ item = new UrlItem ( ' http://www.example.com/ ' );
$ item -> setPriority ( ' 1.0 ' ); //Optional
$ item -> setChangeFreq ( ' daily ' ); //Optional
$ item -> setLastMod ( ' 2014-05-10T17:33:30+08:00 ' ); //Optional
$ sitemap -> add ( $ item );
$ item = new UrlItem ( ' http://www.example.com/blog ' );
$ item -> setPriority ( ' 0.9 ' );
$ item -> setChangeFreq ( ' monthly ' );
$ item -> setLastMod ( ' 2014-05-10T17:33:30+08:00 ' );
$ sitemap -> add ( $ item );
$ item = new UrlItem ( ' http://www.example.com/contact ' );
$ item -> setPriority ( ' 0.8 ' );
$ item -> setChangeFreq ( ' never ' );
$ item -> setLastMod ( ' 2014-05-10T17:33:30+08:00 ' );
$ sitemap -> add ( $ item );
$ sitemap -> build ();
} catch ( SitemapException $ e ) {
echo $ e -> getMessage ();
}<? xml version = " 1.0 " encoding = " UTF-8 " ?>
< urlset xmlns = " http://www.sitemaps.org/schemas/sitemap/0.9 " >
< url >
< loc >http://www.example.com/</ loc >
< lastmod >2014-05-10T17:33:30+08:00</ lastmod >
< changefreq >daily</ changefreq >
< priority >1.0</ priority >
</ url >
< url >
< loc >http://www.example.com/blog</ loc >
< lastmod >2014-05-10T17:33:30+08:00</ lastmod >
< changefreq >monthly</ changefreq >
< priority >0.9</ priority >
</ url >
< url >
< loc >http://www.example.com/contact</ loc >
< lastmod >2014-05-10T17:33:30+08:00</ lastmod >
< changefreq >never</ changefreq >
< priority >0.8</ priority >
</ url >
</ urlset > use NilPortugues Sitemap ImageSitemap ;
use NilPortugues Sitemap Item Image ImageItem ;
use NilPortugues Sitemap SitemapException ;
try {
$ sitemap = new ImageSitemap ( ' path/to/folder ' , ' sitemap.image.xml ' );
$ item = new ImageItem ( ' http://www.example.com/logo.png ' );
$ item -> setTitle ( ' Example.com logo ' ); //Optional
$ sitemap -> add ( $ item , ' http://www.example.com/ ' );
$ item = new ImageItem ( ' http://www.example.com/main.png ' );
$ item -> setTitle ( ' Main image ' ); //Optional
$ sitemap -> add ( $ item , ' http://www.example.com/ ' );
$ sitemap -> build ();
} catch ( SitemapException $ e ) {
echo $ e -> getMessage ();
}<? xml version = " 1.0 " encoding = " UTF-8 " ?>
< urlset xmlns = " http://www.sitemaps.org/schemas/sitemap/0.9 "
xmlns:image= " http://www.google.com/schemas/sitemap-image/1.1 " >
< url >
< loc >http://www.example.com/</ loc >
< image : image >
< image : loc > <![CDATA[ http://www.example.com/logo.png ]]> </ image : loc >
< image : title > <![CDATA[ Example.com logo ]]> </ image : title >
</ image : image >
< image : image >
< image : loc > <![CDATA[ http://www.example.com/main.png ]]> </ image : loc >
< image : title > <![CDATA[ Main image ]]> </ image : title >
</ image : image >
</ url >
</ urlset > use NilPortugues Sitemap VideoSitemap ;
use NilPortugues Sitemap Item Video VideoItem ;
use NilPortugues Sitemap SitemapException ;
try {
$ sitemap = new VideoSitemap ( ' path/to/folder ' , ' sitemap.video.xml ' );
$ item = new VideoItem (
' Grilling steaks for summer ' , //Title
' http://www.example.com/video123.flv ' , //URL
' http://www.example.com/videoplayer.swf?video=123 ' , //Player URL
' yes ' , //Optional
' ap=1 ' // Optional
);
//Optional Values
$ item -> setDescription ( ' Alkis shows you how to get perfectly done steaks everytime ' );
$ item -> setThumbnailLoc ( ' http://www.example.com/thumbs/123.jpg ' );
$ item -> setDuration ( 600 );
$ item -> setExpirationDate ( ' 2009-11-05T19:20:30+08:00 ' );
$ item -> setRating ( 4.2 );
$ item -> setViewCount ( 12345 );
$ item -> setPublicationDate ( ' 2007-11-05T19:20:30+08:00 ' );
$ item -> setFamilyFriendly ( ' yes ' );
$ item -> setRestriction ( ' IE GB US CA ' , ' allow ' );
$ item -> setGalleryLoc ( ' http://cooking.example.com ' , ' Cooking Videos ' );
$ item -> setPrice ( ' 0.99 ' , ' EUR ' , ' rent ' , ' HD ' );
$ item -> setPrice ( ' 0.75 ' , ' EUR ' , ' rent ' , ' SD ' );
$ item -> setCategory ( ' cooking ' );
$ item -> setTag ( array ( ' action ' , ' drama ' , ' entrepreneur ' ));
$ item -> setRequiresSubscription ( ' yes ' );
$ item -> setUploader ( ' GrillyMcGrillerson ' , ' http://www.example.com/users/grillymcgrillerson ' );
$ item -> setPlatform ( ' web mobile tv ' , ' allow ' );
$ item -> setLive ( ' no ' );
$ sitemap -> add ( $ item , ' http://www.example.com/ ' );
$ files = $ sitemap -> build ();
} catch ( SitemapException $ e ) {
echo $ e -> getMessage ();
}<? xml version = " 1.0 " encoding = " UTF-8 " ?>
< urlset xmlns = " http://www.sitemaps.org/schemas/sitemap/0.9 " xmlns : video = " http://www.google.com/schemas/sitemap-video/1.1 " >
< url >
< loc >http://www.example.com/</ loc >
< video : video >
< video : thumbnail_loc > <![CDATA[ http://www.example.com/thumbs/123.jpg ]]> </ video : thumbnail_loc >
< video : title > <![CDATA[ Grilling steaks for summer ]]> </ video : title >
< video : description > <![CDATA[ Alkis shows you how to get perfectly done steaks everytime ]]> </ video : description >
< video : content_loc > <![CDATA[ http://www.example.com/video123.flv ]]> </ video : content_loc >
< video : duration > <![CDATA[ 600 ]]> </ video : duration >
< video : expiration_date > <![CDATA[ 2009-11-05T19:20:30+08:00 ]]> </ video : expiration_date >
< video : publication_date > <![CDATA[ 2007-11-05T19:20:30+08:00 ]]> </ video : publication_date >
< video : restriction relationship = " allow " >IE GB US CA</ video : restriction >
< video : gallery_loc title = " Cooking Videos " >http://cooking.example.com</ video : gallery_loc >
< video : price currency = " EUR " type = " rent " resolution = " HD " >0.99</ video : price >
< video : price currency = " EUR " type = " rent " resolution = " SD " >0.75</ video : price >
< video : tag >action</ video : tag >
< video : tag >drama</ video : tag >
< video : tag >entrepreneur</ video : tag >
< video : requires_subscription > <![CDATA[ yes ]]> </ video : requires_subscription >
< video : uploader >GrillyMcGrillerson</ video : uploader >
< video : platform relationship = " allow " >web mobile tv</ video : platform >
< video : live > <![CDATA[ no ]]> </ video : live >
</ video : video >
</ url >
</ urlset > use NilPortugues Sitemap MediaSitemap ;
use NilPortugues Sitemap Item Media MediaItem ;
use NilPortugues Sitemap SitemapException ;
try {
$ sitemap = new MediaSitemap ( ' path/to/folder ' , ' sitemap.media.xml ' );
$ sitemap -> setTitle ( ' Media RSS de ejemplo ' );
$ sitemap -> setLink ( ' http://www.example.com/ejemplos/mrss/ ' );
$ sitemap -> setDescription ( ' Ejemplo de MRSS ' );
$ item = new MediaItem ( ' http://www.example.com/examples/mrss/example1.html ' );
//Optional
$ item -> setContent ( ' video/x-flv ' , 120 );
$ item -> setPlayer ( ' http://www.example.com/shows/example/video.swf?flash_params ' );
$ item -> setTitle ( ' Barbacoas en verano ' );
$ item -> setDescription ( ' Consigue que los filetes queden perfectamente hechos siempre ' );
$ item -> setThumbnail ( ' http://www.example.com/examples/mrss/example1.png ' , 120 , 160 );
$ sitemap -> add ( $ item );
$ item = new MediaItem ( ' http://www.example.com/examples/mrss/example2.html ' );
$ item -> setContent ( ' video/x-flv ' , 120 );
$ item -> setPlayer ( ' http://www.example.com/shows/example/video.swf?flash_params ' );
$ item -> setTitle ( ' Barbacoas en invierno ' );
$ item -> setDescription ( ' Consigue unos filetes frios ' );
$ item -> setThumbnail ( ' http://www.example.com/examples/mrss/example2.png ' , 120 , 160 );
$ sitemap -> add ( $ item );
$ sitemap -> build ();
} catch ( SitemapException $ e ) {
echo $ e -> getMessage ();
}<? xml version = " 1.0 " encoding = " UTF-8 " ?>
< rss version = " 2.0 " xmlns : media = " http://search.yahoo.com/mrss/ " xmlns : dcterms = " http://purl.org/dc/terms/ " >
< channel >
< title >Media RSS de ejemplo</ title >
< link >http://www.example.com/ejemplos/mrss/</ link >
< description >Ejemplo de MRSS</ description >
< item xmlns : media = " http://search.yahoo.com/mrss/ " xmlns : dcterms = " http://purl.org/dc/terms/ " >
< link >http://www.example.com/examples/mrss/example1.html</ link >
< media : content type = " video/x-flv " duration = " 120 " >
< media : player url = " http://www.example.com/shows/example/video.swf?flash_params " />
< media : title >Barbacoas en verano</ media : title >
< media : description >Consigue que los filetes queden perfectamente hechos siempre</ media : description >
< media : thumbnail url = " http://www.example.com/examples/mrss/example1.png " height = " 120 " width = " 160 " />
</ media : content >
</ item >
< item xmlns : media = " http://search.yahoo.com/mrss/ " xmlns : dcterms = " http://purl.org/dc/terms/ " >
< link >http://www.example.com/examples/mrss/example2.html</ link >
< media : content type = " video/x-flv " duration = " 240 " >
< media : player url = " http://www.example.com/shows/example/video.swf?flash_params " />
< media : title >Barbacoas en invierno</ media : title >
< media : description >Consigue unos filetes frios</ media : description >
< media : thumbnail url = " http://www.example.com/examples/mrss/example2.png " height = " 120 " width = " 160 " />
</ media : content >
</ item >
</ channel >
</ rss > use NilPortugues Sitemap NewsSitemap ;
use NilPortugues Sitemap Item News NewsItem ;
use NilPortugues Sitemap SitemapException ;
try {
$ sitemap = new NewsSitemap ( ' path/to/folder ' , ' sitemap.news.xml ' );
$ item = new NewsItem (
' http://www.example.org/business/article55.html ' , //URL
' Companies A, B in Merger Talks ' , //Title
' 2008-12-23 ' , //Publication Date
' The Example Times ' , //Publication Name
' en ' //locale
);
//Optional Values
$ item -> setAccess ( ' Subscription ' );
$ item -> setKeywords ( ' business, merger, acquisition, A, B ' );
$ item -> setStockTickers ( ' NASDAQ:A, NASDAQ:B ' );
$ item -> setGenres ( ' PressRelease, Blog ' );
$ sitemap -> add ( $ item );
$ sitemap -> build ();
} catch ( SitemapException $ e ) {
echo $ e -> getMessage ();
}<? xml version = " 1.0 " encoding = " UTF-8 " ?>
< urlset xmlns = " http://www.sitemaps.org/schemas/sitemap/0.9 " xmlns : news = " http://www.google.com/schemas/sitemap-news/0.9 " >
< url >
< loc >http://www.example.org/business/article55.html</ loc >
< news : news >
< news : publication >
< news : name >The Example Times</ news : name >
< news : language >en</ news : language >
</ news : publication >
< news : access >Subscription</ news : access >
< news : genres >PressRelease, Blog</ news : genres >
< news : publication_date >2008-12-23</ news : publication_date >
< news : title >Companies A, B in Merger Talks</ news : title >
< news : keywords >business, merger, acquisition, A, B</ news : keywords >
< news : stock_tickers >NASDAQ:A, NASDAQ:B</ news : stock_tickers >
</ news : news >
</ url >
</ urlset >Os testes foram feitos usando phpunit e travis-ci. Todo o código foi testado para ser compatível do PHP 5.4 até o PHP 5.6 e o HHVM do Facebook.
Me mande um e-mail ou entre em contato comigo usando
-
Nil Portugués Calderó