0 Пользователей и 1 Гость просматривают эту тему.
  • 16 Ответов
  • 734 Просмотров
*

b2z

  • Support Team
  • 7470
  • 742
  • Разраблю понемногу
*

Филипп Сорокин

  • Практически профи
  • 1816
  • 138
Re: Новый роутер Joomla - первый взгляд
« Ответ #1 : 26.02.2016, 12:14:06 »
Мнение такое, что Joomla медленно, но верно приобретает облик профессиональной и гибкой системы. Главный недостаток в том, что развитие идёт очень медленно. 2 года для реализации базового функционала нового роутера, на мой взгляд, — это очень много. Всё потому, что в одиночку этот обоз ни один разработчик не потянет, будь он хоть семь пядей во лбу, как наш герой. А если по мне, то идеальный роутинг должен строиться на регулярных выражениях.
Ставь лайк, если согласен, и делай репост!

  => мои публикации
    => мои работы
      => спектр моих услуг
*

Aleks.Denezh

  • Практически профи
  • 2806
  • 377
Re: Новый роутер Joomla - первый взгляд
« Ответ #2 : 26.02.2016, 12:22:49 »
посмотрел, почитал.. если они хотели усложнить жизнь программистам, они с этим отлично справились!
Пока я не вижу никаких плюсов этого похода (в котором нужно написать тону непонятного кода) перед стандартным + прикрутить в хелпере простейший код на 10-20 строк для определения роута!
+ теперь не понятно как вообще делать условия для роутинга!
например у меня в роутере может быть привязка только на один вид (список категорий)
нет переменны, выводим список, одна переменная, выводим категорию, две переменных выводим материал в категории...
Или допустим у меня есть такое:
if ( isset( $segments[0] ) && $segments[0] === 'getFile' ) {
   $vars['task'] = 'file.download';
   $vars['id'] = $segments[1];
   return $vars;
}
То есть если приходит такая ссылка /getFile/1.html
У меня не бежит в вид, у меня выполняет задачу на скачивание файла в контроллере! Как теперь строить подобные условия я не врубился пока!
upd.:
Подозреваю что все можно будет сделать в методе function contentParseRoute($segments) но сильно подозреваю что будут большие проблемы..
« Последнее редактирование: 26.02.2016, 12:29:44 от Istaan »
Мой  блог по разработке на Joomla CMS!
Хотите отблагодарить материально? Мой WMR: R861060179016
*

b2z

  • Support Team
  • 7470
  • 742
  • Разраблю понемногу
Re: Новый роутер Joomla - первый взгляд
« Ответ #3 : 26.02.2016, 12:35:36 »
Ну так это всё в правиле надо делать. Посмотри исходный код правил - там как раз и есть эта реализация.
*

Aleks.Denezh

  • Практически профи
  • 2806
  • 377
Re: Новый роутер Joomla - первый взгляд
« Ответ #4 : 26.02.2016, 13:01:24 »
Так и не понял где смотреть..
на правилах в com_content такие строки:

Код: php
$this->attachRule( new JComponentRouterRulesMenu( $this ) );
$params = JComponentHelper::getParams( 'com_content' );
if ( $params->get( 'sef_advanced', 0 ) ) {
$this->attachRule( new JComponentRouterRulesStandard( $this ) );
}
else {
require_once JPATH_SITE . '/components/com_content/helpers/legacyrouter.php';
$this->attachRule( new ContentRouterRulesLegacy( $this ) );
}
1. new JComponentRouterRulesMenu($this) поиск по коду класса JComponentRouterRulesMenu ничего не дал..
2. JComponentRouterRulesStandard поиск по коду класса JComponentRouterRulesStandard ничего не дал
3. require_once JPATH_SITE . '/components/com_content/helpers/legacyrouter.php';

Естественно такого файла по указанному пути нет!
Так что правилами пока ничего не понятно!
Нужно ждать стабильной версии и документации от разработчиков...или придется самому очень сильно поковыряться.. но подозреваю что это банальная смена шила на мыло...
Мой  блог по разработке на Joomla CMS!
Хотите отблагодарить материально? Мой WMR: R861060179016
*

b2z

  • Support Team
  • 7470
  • 742
  • Разраблю понемногу
Re: Новый роутер Joomla - первый взгляд
« Ответ #5 : 26.02.2016, 13:16:56 »
Вот код стандартного правила из репы Ханса. Смотри там метод parse(&$segments, &$vars) - в нём всё релизовано. Делаешь своё правило, расширяешь Standard. Где надо, делаешь свою обработку, а остальное parent::parse();

В ветке Joomla 3.6.x не хватает файлов. Я спецом написал в материале:
Цитировать
Если вы хотите самостоятельно изучить исходный код, то либо используйте ветку Joomla 3.6.x (но там пока нет некоторых файлов), либо репозитроий Hannes (на момент написания статьи он был актуален).
*

zomby6888

  • Живу я здесь
  • 1484
  • 167
Re: Новый роутер Joomla - первый взгляд
« Ответ #6 : 26.02.2016, 13:36:24 »
Мдаа.. почитал. Я единственное непонимаю, зачем так было все усложнять? Куча классов, интерфейсов. В любом фреймворке роутинг это тупо набор регулярок, плюc там еще возможно определить свое правило которое состоит всего из двух методов parse и build.  Тут какой то просто зоопарк классов и методов. Единственная надежда что они от половины избавятся со временем. Также поражают такие вот названия классов: JComponentRouterViewconfiguration, JComponentRouterRulesStandard. Это что за портянка такая в названии класса?  Я понимаю что когда писалась Joomla, то неймспейсы еще не были в php реализованы. Но сейчас то в 2016 году так писать зачем?
интернет-блог: http://websiteprog.ru
*

Aleks.Denezh

  • Практически профи
  • 2806
  • 377
Re: Новый роутер Joomla - первый взгляд
« Ответ #7 : 26.02.2016, 13:52:30 »
Мдаа.. почитал. Я единственное непонимаю, зачем так было все усложнять? Куча классов, интерфейсов. В любом фреймворке роутинг это тупо набор регулярок, плюc там еще возможно определить свое правило которое состоит всего из двух методов parse и build.  Тут какой то просто зоопарк классов и методов. Единственная надежда что они от половины избавятся со временем. Также поражают такие вот названия классов: JComponentRouterViewconfiguration, JComponentRouterRulesStandard. Это что за портянка такая в названии класса?  Я понимаю что когда писалась Joomla, то неймспейсы еще не были в php реализованы. Но сейчас то в 2016 году так писать зачем?
полностью поддерживаю..
Надеюсь что оставят старый метод формирования роутинга, ибо этот как по мне бред сивой кобылы...
Мой  блог по разработке на Joomla CMS!
Хотите отблагодарить материально? Мой WMR: R861060179016
*

b2z

  • Support Team
  • 7470
  • 742
  • Разраблю понемногу
Re: Новый роутер Joomla - первый взгляд
« Ответ #8 : 26.02.2016, 16:09:25 »
Мдаа.. почитал. Я единственное непонимаю, зачем так было все усложнять? Куча классов, интерфейсов. В любом фреймворке роутинг это тупо набор регулярок, плюc там еще возможно определить свое правило которое состоит всего из двух методов parse и build.  Тут какой то просто зоопарк классов и методов. Единственная надежда что они от половины избавятся со временем.
Регулярка, аха... Ну попробуй такую сделать для Joomla, да так, чтобы старое не сломалось. Что-то не вижу пока что желающих :)

Что касается зоопарка - как ещё заставить стороннего разработчика написать правило, которое было бы совместимо с роутером? Или роутер, совместимый с правилами? Для этого нужен интерфейс. Мне тоже сначало показалось, что много всего, но в итоге понимаешь, что без этого никак

Также поражают такие вот названия классов: JComponentRouterViewconfiguration, JComponentRouterRulesStandard. Это что за портянка такая в названии класса?  Я понимаю что когда писалась Joomla, то неймспейсы еще не были в php реализованы. Но сейчас то в 2016 году так писать зачем?
Согласен, но пишут под тройку... В J4 ты этого конечно уже не увидешь.

Цитировать
Надеюсь что оставят старый метод формирования роутинга, ибо этот как по мне бред сивой кобылы...
Конечно оставят. B/C сохранить же нужно.
*

Aleks.Denezh

  • Практически профи
  • 2806
  • 377
Re: Новый роутер Joomla - первый взгляд
« Ответ #9 : 26.02.2016, 16:57:29 »
Регулярка, аха... Ну попробуй такую сделать для Joomla, да так, чтобы старое не сломалось. Что-то не вижу пока что желающих :)
Я бы например желал что то сделать, но с моим английским боюсь что либо никто не поймет что это было.. либо вообще даже смотреть не будут...


Что касается зоопарка - как ещё заставить стороннего разработчика написать правило, которое было бы совместимо с роутером? Или роутер, совместимый с правилами? Для этого нужен интерфейс. Мне тоже сначало показалось, что много всего, но в итоге понимаешь, что без этого никак
Дима о чем ты.. покажи хоть одно расширение где разработчики делают так как нужно, а не пишут свой фреймворк внутри фреймворка! Да 90% напишут костыль  с которым им будет проще в разы!

Согласен, но пишут под тройку... В J4 ты этого конечно уже не увидешь.
Если мы увидим 4-ку ;D

Конечно оставят. B/C сохранить же нужно.
Слава богу..


p.s. многие говорят что в Joomla проблема с роутингом.. а может хоть кто то объяснить в чем эта проблема? Как по мне с ним проблем нету, вообще! Я с легкостью делаю ссылки любой сложности не напрягаясь..
Мой  блог по разработке на Joomla CMS!
Хотите отблагодарить материально? Мой WMR: R861060179016
*

b2z

  • Support Team
  • 7470
  • 742
  • Разраблю понемногу
Re: Новый роутер Joomla - первый взгляд
« Ответ #10 : 26.02.2016, 17:00:07 »
Я бы например желал что то сделать, но с моим английским боюсь что либо никто не поймет что это было.. либо вообще даже смотреть не будут...
Ну переводчики найдутся, не беспокойся.
*

voland

  • Профи
  • 9522
  • 422
  • Эта строка съедает место на вашем мониторе
Re: Новый роутер Joomla - первый взгляд
« Ответ #11 : 26.02.2016, 17:01:04 »
Вот не надо регулярок!
Кто тестить будет? Те 2,5 человека, что  их понимают?
*

b2z

  • Support Team
  • 7470
  • 742
  • Разраблю понемногу
Re: Новый роутер Joomla - первый взгляд
« Ответ #12 : 26.02.2016, 17:05:07 »
И вообще если посмотреть ещё раз, то где зоопарк? База реально состоит из следующего:
- 2 интерфейса (роутер и правило);
- 3 класса роутера (базовый, легаси для старых расширений и новый);
- 1 класс конфигурации представления.

Правила не в счёт - это просто довесок. К тому же, Вам не нужно изучать всю эту базу. Нужно будет только понимать принцип работы правил и класса конфигурации представления. В этом и состоит суть API и инкапсуляции в частности - вам не обязательно знать реализацию. В роутере вы только регистрируете список представлений и добавляете правила. Ну да, ещё нужно возвращать сегменты и ID для parse и build.

Мне кажется, когда будет хоть какая-то документация, то всё встанет на свои места. До конца понять логику работы по исходному коду очень непросто.
*

zomby6888

  • Живу я здесь
  • 1484
  • 167
Re: Новый роутер Joomla - первый взгляд
« Ответ #13 : 26.02.2016, 17:58:30 »
Цитировать
В роутере вы только регистрируете список представлений

Вот это мне вобще непонятно нафига сделано. Мало того что отдельный класс для регистрации представлений, так еще и отдельные классы для конфигураций этих представлений. Зачем это все? Возвращать сегменты, добавлять правила... Зачем это тоже? Нельзя так просто чтоли дать возможность писать свои правила для роутера компонентов и для глобального роутера? И чтобы в этих правилах можно было оперировать сегментами из запросов. И переопределять их плагинами.
интернет-блог: http://websiteprog.ru
*

b2z

  • Support Team
  • 7470
  • 742
  • Разраблю понемногу
Re: Новый роутер Joomla - первый взгляд
« Ответ #14 : 26.02.2016, 18:02:40 »
Может и можно. Но никто этого не сделал. А он сделал. И PR висел очень долго и видимо всех устроил.
*

zomby6888

  • Живу я здесь
  • 1484
  • 167
Re: Новый роутер Joomla - первый взгляд
« Ответ #15 : 26.02.2016, 18:10:25 »
На самом деле возможность переопределять правила роутеров компонентов с помощью плагинов появилась еще в роутере для 3.3 версии. Просто никто этого не заметил . Я написал плагин даже под это дело. Надесь он будет работать с новым роутером.
интернет-блог: http://websiteprog.ru
*

Aleks.Denezh

  • Практически профи
  • 2806
  • 377
Re: Новый роутер Joomla - первый взгляд
« Ответ #16 : 26.02.2016, 18:12:42 »
Может и можно. Но никто этого не сделал. А он сделал. И PR висел очень долго и видимо всех устроил.
для меня пока что это выглядит как то так:
Мой  блог по разработке на Joomla CMS!
Хотите отблагодарить материально? Мой WMR: R861060179016
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Справочник по классам API Joomla 3 и Joomla 2

Автор AlexeyGal

Ответов: 41
Просмотров: 1107
Последний ответ 20.09.2017, 00:50:17
от AlexeyGal
Переделать запросы к БД под Joomla

Автор Glog

Ответов: 3
Просмотров: 161
Последний ответ 03.07.2017, 17:53:28
от Glog
Поддержка Joomla в PhpStorm

Автор b2z

Ответов: 51
Просмотров: 5480
Последний ответ 28.12.2016, 23:31:39
от b2z
Joomla search tools

Автор jitendra

Ответов: 2
Просмотров: 204
Последний ответ 15.12.2016, 17:13:15
от jitendra
Как при помощи функций Joomla узнать номер страницы в пагинации?

Автор tora312

Ответов: 51
Просмотров: 1112
Последний ответ 06.12.2016, 08:25:43
от tora312