承接 belyashdima-test-tasks/sitemap-lib-test 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

belyashdima-test-tasks/sitemap-lib-test

最新稳定版本:v1.0.0

Composer 安装命令:

composer require belyashdima-test-tasks/sitemap-lib-test

包简介

This test package include tool for saving sitemap in 3 formats: xml, json and csv

README 文档

README

Ссылка на тестовое задание: https://docs.google.com/document/d/115MIjgY5AvGc1bmOYcTBOVYK8SZBS1LrSfvo1agsdWI/edit

Запуск программы

Подключение библиотеки

  1. Создаём пустой проект, добавляем файл composer.json.

  2. Запускаем следующую команду: composer run install

  3. Создаём в проекте файл, к примеру с таким названием: StartPoint.php

  4. Перед подключением библиотеки необходимо её достать с портала Packagist: composer require belyashdima-test-tasks/sitemap-lib-test

  5. Обновляем composer: composer update

  6. В файле composer.json должно быть так: composer.json

  7. В скрипте после тега <?php добавляем следующие строки:

require_once __DIR__ . '/vendor/autoload.php';
use classes\BaseFormatter;

Пример входных данных

$urls = [
    [
        "loc" => "https://site.ru/",
        "lastmod" =>"2020-12-14",
        "priority" =>1,
        "changefreq"=>"hourly"
    ],
    [
        "loc" => "https://site.ru/news",
        "lastmod"=>"2020-12-10",
        "priority"=>0.5,
        "changefreq"=>"daily"
    ],
    [
        "loc" => "https://site.ru/about",
        "lastmod"=>"2020-12-07",
        "priority"=>0.1,
        "changefreq"=>"weekly"
    ],
    [
        "loc" => "https://site.ru/products",
        "lastmod"=>"2020-12-12",
        "priority"=>0.5,
        "changefreq"=>"daily"
    ],
    [
        "loc" => "https://site.ru/products/ps5",
        "lastmod"=>"2020-12-11",
        "priority"=>0.1,
        "changefreq"=>"weekly"
    ],
    [
        "loc" => "https://site.ru/products/xbox",
        "lastmod"=>"2020-12-12",
        "priority"=>0.1,
        "changefreq"=>"weekly"
    ],
    [
        "loc" => "https://site.ru/products/wii",
        "lastmod"=>"2020-12-11",
        "priority"=>0.1,
        "changefreq"=>"weekly"
    ]
];

Примеры инициализаций объектов по различным форматам файла:

// Путь для примера, можно указать любой другой
$path = getenv('HOME').'/uploads/sitemap2.json'; 
$jsonFile = new BaseFormatter($urls,'json',$path);

$path2 = getenv('HOME').'/uploads/sitemap2.сsv';
$csvFile = new BaseFormatter($urls,'csv',$path2);

$path3 = getenv('HOME').'/uploads/sitemap2.xml';
$xmlFile = new BaseFormatter($urls,'xml',$path3);

Итоговый код скрипта StartPoint.php

<?php
require_once __DIR__ . '/vendor/autoload.php';
use classes\BaseFormatter;

$urls = [
    [
        "loc" => "https://site.ru/",
        "lastmod" =>"2020-12-14",
        "priority" =>1,
        "changefreq"=>"hourly"
    ],
    [
        "loc" => "https://site.ru/news",
        "lastmod"=>"2020-12-10",
        "priority"=>0.5,
        "changefreq"=>"daily"
    ],
    [
        "loc" => "https://site.ru/about",
        "lastmod"=>"2020-12-07",
        "priority"=>0.1,
        "changefreq"=>"weekly"
    ],
    [
        "loc" => "https://site.ru/products",
        "lastmod"=>"2020-12-12",
        "priority"=>0.5,
        "changefreq"=>"daily"
    ],
    [
        "loc" => "https://site.ru/products/ps5",
        "lastmod"=>"2020-12-11",
        "priority"=>0.1,
        "changefreq"=>"weekly"
    ],
    [
        "loc" => "https://site.ru/products/xbox",
        "lastmod"=>"2020-12-12",
        "priority"=>0.1,
        "changefreq"=>"weekly"
    ],
    [
        "loc" => "https://site.ru/products/wii",
        "lastmod"=>"2020-12-11",
        "priority"=>0.1,
        "changefreq"=>"weekly"
    ]
];

// Путь для примера, можно указать любой другой
$path = getenv('HOME').'/uploads/sitemap3.json';
$jsonFile = new BaseFormatter($urls,'json',$path);

$path2 = getenv('HOME').'/uploads/sitemap3.сsv';
$csvFile = new BaseFormatter($urls,'csv',$path2);

$path3 = getenv('HOME').'/uploads/sitemap3.xml';
$xmlFile = new BaseFormatter($urls,'xml',$path3);

?>

Примеры сгенерированных файлов

CSV

CSV-файл

JSON

JSON-файл

XML

XML-файл

Пример исключения

$path4 = getenv('HOME').'/uploads/sitemap3.txt';
$txtFile = new BaseFormatter($urls,'txt',$path3);
/bin/php /home/belyashdima/PhpstormProjects/untitled2/StartPoint.php
PHP Fatal error:  Uncaught Exception: Неподдерживаемый формат файла in /home/belyashdima/PhpstormProjects/untitled2/vendor/belyashdima-test-tasks/sitemap-lib-test/classes/BaseFormatter.php:44
Stack trace:
#0 /home/belyashdima/PhpstormProjects/untitled2/vendor/belyashdima-test-tasks/sitemap-lib-test/classes/BaseFormatter.php(28): classes\BaseFormatter->setFormatter()
#1 /home/belyashdima/PhpstormProjects/untitled2/StartPoint.php(61): classes\BaseFormatter->__construct()
#2 {main}
  thrown in /home/belyashdima/PhpstormProjects/untitled2/vendor/belyashdima-test-tasks/sitemap-lib-test/classes/BaseFormatter.php on line 44

Process finished with exit code 255

统计信息

  • 总下载量: 3
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: proprietary
  • 更新时间: 2024-09-07