Удобное расширение для генерации sitemap превышающих 50 000
Удобное расширение для генерации sitemap превышающих 50 000
Здравствуйте!
Давно еще когда не использовал фреймворк Yii2 написал удобный класс для генерации sitemap в формате xml.
Главная особенность это создание не ограниченного количества карт сайта если размер линков в карте превышает 49000 ., т.е. по стандарту гугла - то гугл принимает только карты не превышающие 50000 линков. Если к примеру у вас 150 000 линков, то с генерируется 3 карты сайта и одна индекс карта указывающая на эти три.
Я переделал свой класс под Yii2 и сделал удобное расширение.
Установить можно композером.
Вот ссылка на гитхаб с инструкцией https://github.com/borysenko/sitemap
Давно еще когда не использовал фреймворк Yii2 написал удобный класс для генерации sitemap в формате xml.
Главная особенность это создание не ограниченного количества карт сайта если размер линков в карте превышает 49000 ., т.е. по стандарту гугла - то гугл принимает только карты не превышающие 50000 линков. Если к примеру у вас 150 000 линков, то с генерируется 3 карты сайта и одна индекс карта указывающая на эти три.
Я переделал свой класс под Yii2 и сделал удобное расширение.
Установить можно композером.
Вот ссылка на гитхаб с инструкцией https://github.com/borysenko/sitemap
Сайт по работе в Украине: https://jobis.com.ua/. Сайт по поиску строителей: https://stroyzakaz.com.ua/
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Re: Удобное расширение для генерации sitemap превышающих 50 000
https://github.com/samdark/sitemap
ну вот например от сэмдарка аналогичное расширение, но:
а) соблюдены стандарты psr
б) экономно работает с памятью
в) не склеивает xml руками из строки
г) готово к продакшну (есть релизы)
д) не наследует зачем-то Model
и вот еще поройтесь в сотнях библиотек https://github.com/search?l=PHP&q=sitem ... =%E2%9C%93
уверен найдете несколько десятков, обладающих вашим функционалом, но более качественным кодом.
ну вот например от сэмдарка аналогичное расширение, но:
а) соблюдены стандарты psr
б) экономно работает с памятью
в) не склеивает xml руками из строки
г) готово к продакшну (есть релизы)
д) не наследует зачем-то Model
и вот еще поройтесь в сотнях библиотек https://github.com/search?l=PHP&q=sitem ... =%E2%9C%93
уверен найдете несколько десятков, обладающих вашим функционалом, но более качественным кодом.
Re: Удобное расширение для генерации sitemap превышающих 50 000
+zelenin писал(а):https://github.com/samdark/sitemap
ну вот например от сэмдарка аналогичное расширение, но:
а) соблюдены стандарты psr
б) экономно работает с памятью
в) не склеивает xml руками из строки
г) готово к продакшну (есть релизы)
д) не наследует зачем-то Model
и вот еще поройтесь в сотнях библиотек https://github.com/search?l=PHP&q=sitem ... =%E2%9C%93
уверен найдете несколько десятков, обладающих вашим функционалом, но более качественным кодом.
Re: Удобное расширение для генерации sitemap превышающих 50 000
Могу ответить: я конечно не супер - гуру программист, но свое решение я сам писал, не используя чужой код. У меня на трех проектах оно успешно реализовано. На одном сайте по трудоустройству в котором 180 000 вакансий - карта сайта создается по крону каждую ночь успешно, с разбитием на несколько карт.zelenin писал(а): ну вот например от сэмдарка аналогичное расширение.
По сэмдарку, ну у него просто добавлять урлы надо так: $sitemap->addItem('http://example.com/mylink2', time()); И если надо с базы выводить например вакансии, то код будет примерно такой:
Код: Выделить всё
$model = Vacancy::find()->all();
foreach($model as $item){
$sitemap->addItem($item->url, time());
}
Код: Выделить всё
$siteMap->addTable("http://www.example.com/news/%s-%d/","0.9", date("Y-m-d"),"daily", "news",array("translit","id"),"1=1");
Сайт по работе в Украине: https://jobis.com.ua/. Сайт по поиску строителей: https://stroyzakaz.com.ua/
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Re: Удобное расширение для генерации sitemap превышающих 50 000
вы не поняли, что я до вас доносил?webplus писал(а):Могу ответить: я конечно не супер - гуру программист, но свое решение я сам писал, не используя чужой код.zelenin писал(а): ну вот например от сэмдарка аналогичное расширение.
вы безусловно молодец, что писали сами. Никто не сомневается. Только ценность библиотеки крайне низка, т.к. есть сотни конкурентов, а у вас ни одного плюса по сравнению с ними.
супер. У авторов тех сотен библиотек тоже где-то что-то генерится.webplus писал(а):У меня на трех проектах оно успешно реализовано. На одном сайте по трудоустройству в котором 180 000 вакансий - карта сайта создается по крону каждую ночь успешно, с разбитием на несколько карт.
офигеть фича. Вместо понятных трех строк вводим одну, но непонятную. Вместо произвольного источника данных - фиксированный, не предоставив даже интерфейсов для провайдера данных (поясню: нельзя использовать связи, джойнить таблицы, использовать другие кроме стандартного коннекшны (редис, монго, второе mysql-соединение, апи)). К слову выбрать все данные из таблицы - выстрелить себе в ногу, а другого вариант у вас нет.webplus писал(а):По сэмдарку, ну у него просто добавлять урлы надо так: $sitemap->addItem('http://example.com/mylink2', time()); И если надо с базы выводить например вакансии, то код будет примерно такой:А у меня этих циклов писать не надо, у меня так:Код: Выделить всё
$model = Vacancy::find()->all(); foreach($model as $item){ $sitemap->addItem($item->url, time()); }
из этого кода: news - это таблица для sql запроса, array("translit","id") - это данные которые надо в урл подставить, "1=1" - это условия sql запроса т.е. WhereКод: Выделить всё
$siteMap->addTable("http://www.example.com/news/%s-%d/","0.9", date("Y-m-d"),"daily", "news",array("translit","id"),"1=1");
Пишите либы:
а) покрывающие области, которые не покрыты уже существующими либами
б) обладающие уникальными фичами по сравнению с аналогами
в) имеющие другой подход к реализации фичи, чем аналоги (в т.ч. упрощение комбайна)
Не пишите либы:
а) имеющие такой же или худший функционал, чем другие либы
б) написанные без применения адекватного кодстайла
в) имеющие критические дыры функциональности
Не анонсируйте либы, уровня "я сделяль" - это никогда не вызовет позитива в комментариях.
PS eval, серьезно? https://github.com/borysenko/sitemap/bl ... ap.php#L52
Re: Удобное расширение для генерации sitemap превышающих 50 000
Да я использовал eval - но наверно это не правильный был подход?zelenin писал(а): PS eval, серьезно? https://github.com/borysenko/sitemap/bl ... ap.php#L52
Сайт по работе в Украине: https://jobis.com.ua/. Сайт по поиску строителей: https://stroyzakaz.com.ua/
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Re: Удобное расширение для генерации sitemap превышающих 50 000
Изучив те решения, что дали вы, например сэмдарка, так в нем для создание нескольких карт в каждой из которых должно быть по 50000 линков - эти карты нужно прописывать в скрипте и для каждой прописанной такой карте необходимо самому просчитать, если превысит цикл вывода линков 50000, то создавать новую карту. - Как мне ,кажется, это не очень удобно.zelenin писал(а):https://github.com/samdark/sitemap
ну вот например, от сэмдарка аналогичное расширение
У меня реализовано так:
Мы добавляем шаблоны линков в месте с таблицей и условием для sql запроса, и при записи в файл линков если их количество достигло 49000 то создается новый-дополнительный файл sitemap
И это был самый главный приоритет при написании своего решения, чтобы карты создавались сами в каждой из которых было 49000 линков, и писать в скрипте ничего не нужно было, кроме шаблонов линка и таблицы бд с условием
И еще join-ы можно добавлять, например:
Код: Выделить всё
$siteMap->addTable("http://www.example.com/news/%s-%d/","0.9", date("Y-m-d"),"daily", "news n LEFT JOIN author a ON a.id=n.author_id",array("n.translit","n.id"),"1=1");
Сайт по работе в Украине: https://jobis.com.ua/. Сайт по поиску строителей: https://stroyzakaz.com.ua/
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Re: Удобное расширение для генерации sitemap превышающих 50 000
я вижу что там все есть. при достижении 50000 создается новый файл.webplus писал(а):Изучив те решения, что дали вы, например сэмдарка, так в нем для создание нескольких карт в каждой из которых должно быть по 50000 линков - эти карты нужно прописывать в скрипте и для каждой прописанной такой карте необходимо самому просчитать, если превысит цикл вывода линков 50000, то создавать новую карту. - Как мне ,кажется, это не очень удобно.zelenin писал(а):https://github.com/samdark/sitemap
ну вот например, от сэмдарка аналогичное расширение
Re: Удобное расширение для генерации sitemap превышающих 50 000
Неправильный. Есть call_user_func_array.webplus писал(а): Да я использовал eval - но наверно это не правильный был подход?
Re: Удобное расширение для генерации sitemap превышающих 50 000
zelenin писал(а): ↑2016.12.09, 19:53 https://github.com/samdark/sitemap
ну вот например от сэмдарка аналогичное расширение, но:
а) соблюдены стандарты psr
б) экономно работает с памятью
в) не склеивает xml руками из строки
г) готово к продакшну (есть релизы)
д) не наследует зачем-то Model
и вот еще поройтесь в сотнях библиотек https://github.com/search?l=PHP&q=sitem ... =%E2%9C%93
уверен найдете несколько десятков, обладающих вашим функционалом, но более качественным кодом.
ерунда это, а не расширение. Ничего толком не объяснено, куда вставлять, что делать....