2017 © Pedro Peláez
 

library sitemap

Sitemap generator library

image

lapshev/sitemap

Sitemap generator library

  • Friday, September 29, 2017
  • by lapshev
  • Repository
  • 1 Watchers
  • 0 Stars
  • 8 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

Sitemap generator

Install

composer require lapshev/sitemap

Usage

  1. Create generator object
  2. Create provider object
  3. Add provider to generator
  4. Generate

Specify filename while adding provider, content of this file is the result of merge multiply providers with same filename, (*1)

use Lapshev\Sitemap;
use Lapshev\Sitemap\Providers;

$sitemap = new Sitemap\Generator('http://example.com');
$simpleProvider = new Providers\Simple([
    ['/', new \DateTime(), 'daily', 0.5], 
    ['/news/', new \DateTime(), 'monthly', 1]
]);

$sitemap->addProvider('example', $simpleProvider);
// will output to example.xml and add this file sitemap.xml

$sitemap->generate($_SERVER['DOCUMENT_ROOT']);

For more advantage usage your should create your own provider that implements iProvider interface. See example bellow:, (*2)

namespace MySite\Sitemap\Providers;

use Lapshev\Sitemap\BaseProvider;
use Lapshev\Sitemap\Entire;
use Lapshev\Sitemap\iProvider;

class DataBase extends BaseProvider implements iProvider
{
    private $dbResult;

    private $tableName;

    public function __construct($params = []) {
        parent::__construct($params);
        $this->tableName = $params['tableName'];
    }

    // will be called before fetching
    public function prepareData() {
        $servername = "localhost";
        $username = "username";
        $password = "password";
        $dbname = "myDB";

        // Create connection
        $conn = new \mysqli($servername, $username, $password, $dbname);

        $sql = "SELECT id, pageUrl, lastMod FROM {$this->tableName}";
        $this->dbResult = $conn->query($sql);
    }

    public function getNextEntire() {
        while($row = $this->dbResult->fetch_assoc()) {
            return new Entire($row['pageUrl'], $row['lastMod'], 'daily', 0.7);
        }

        return null;
    }
}

Features

Check response

$sitemap = new Sitemap\Generator('http://example.com', ['checkResponse' => true]);

Will check every url in the set and output wrong ones, (*3)

More examples

use Lapshev\Sitemap\Generator;
use Lapshev\Sitemap\Providers\Simple;

use newsite\SiteMap\Providers\Elements;
use newsite\SiteMap\Providers\Files;
use newsite\SiteMap\Providers\Sections;
use newsite\SiteMap\Providers\Banners;

use Bitrix\Main\Type\DateTime;

require 'common.php';

$params = [
    'check_response'    => in_array('checkResponse', $argv)
];

$arScheme = [
    'catalog'   => [
        new Sections(['iBlockID' => CATALOG_SEO_MENU, 'indexID' => 1, 'priority' => 0.5]),
    ],
    'menu'      => [
        new Sections(['iBlockID' => CATALOG_LOGIC_MENU, 'indexID' => 1, 'priority' => 0.5]),
    ],
    'goods'     => [
        new Elements(['iBlockID' => CATALOG_PRODUCT_IBLOCK, 'indexID' => 1, 'priority' => 0.5]),
    ],
    'news'      => [
        new Simple([ ['/news/', new DateTime(), 'hourly', 1] ]),
        new Elements(['iBlockID' => 25, 'priority' => 0.8, 'changeFreq' => 'monthly']),
    ],
    'articles'  => [
        new Simple([ ['/helpful/', new DateTime(), 'hourly', 0.4] ]),
        new Elements(['iBlockID' => 29, 'priority' => 0.4]),
    ],
    'info'      => [
        new Simple([ ['/', new DateTime(), 'hourly', 1] ]),
        new Files(['priority' => 0.4])
    ],
    'sale'      => [
        new Banners(['type' => 'actionCatalogList', 'priority' => 1, 'changeFreq' => 'daily']),
    ]
];

$siteMap = new Generator('http://example.com', $params);

foreach($arScheme as $fileName => $providers) {
    foreach($providers as $provider){
        $siteMap->addProvider($fileName, $provider);
    }
}

$siteMap->generate($_SERVER['DOCUMENT_ROOT']);

The Versions

29/09 2017

dev-master

9999999-dev

Sitemap generator library

  Sources   Download

MIT

The Requires

  • php >=5.6.0

 

The Development Requires

by Victor Lapshev

27/09 2017

1.0.0

1.0.0.0

Sitemap generator library

  Sources   Download

MIT

The Requires

  • php >=5.6.0

 

The Development Requires

by Victor Lapshev