Créez des sitemaps pour les pages, les images et les fichiers multimédias et fournit une classe pour les soumettre à des moteurs de recherche.
La façon recommandée d'installer le composant du site de site est via le compositeur. Exécutez la commande suivante pour l'installer:
php composer.phar require nilportugues/sitemap-componentCe composant construit des sitemaps pris en charge par les principaux moteurs de recherche, Google et Bing, dans les formats XML et GZIP.
Le composant du site de site est capable de construire les types de sitemaps suivants:
Un plan du site qui sert d'index contenant des références à d'autres fichiers sitemap.xml. Plus de documents peuvent être trouvés ici.
Sitemaps de contenu textuel, le type de site le plus courant trouvé autour d'Internet. Plus de documents peuvent être trouvés ici.
Sitemap pour les images. Plus de documents peuvent être trouvés ici.
Sitemap pour les vidéos. Plus de documents peuvent être trouvés ici.
Alternative pour les sitemaps vidéo. Plus de documents peuvent être trouvés ici.
Sitemap pour les articles de presse. Plus de documents peuvent être trouvés ici.
Le composant du site de site suivez à 100% les normes, ce qui signifie qu'il suit strictement les contre-attributions:
<url> . Ce composant fournit également une méthode pour soumettre les sitemaps générés aux moteurs de recherche suivants:
<?php
use NilPortugues Sitemap SubmitSitemap ;
// $status = ['google' => true, 'bing' => true]; if everything went OK.
$ status = SubmitSitemap :: send ( ' http://example.com/sitemap-index.xml ' );Afin d'utiliser un index de site, vous devez d'abord créer des fichiers de sitemap. Découvrez 4.3, 4.4 et 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 >Les tests ont été effectués à l'aide de phpunit et de travis-CI. Tout le code a été testé pour être compatible de PHP 5.4 à PHP 5.6 et HHVM de Facebook.
Envoyez-moi un e-mail ou contactez-moi en utilisant
-
Nil Portugues Calderó