Новости Joomla

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

zaboich

  • Осваиваюсь на форуме
  • 37
  • 11 / 0
Практически весь код Joomla комментирован в стандарте phpDocumentor. И большинство IDE для php разработки позволяют пользоваться его возможностями — быстрая подстановка доступных констант, переменных, методов, удобное определение уровней видимости и т. д.

Но, надо признать, что структура Joomla не самая удобная для работы с IDE.
Например, штатным методом получаем в контроллере компонента объект модели

Код: php
$model = $this->getModel();

IDE напрочь лишена возможности узнать что либо о объекте, который получила переменная $model, и все удобства IDE при работе с $model после этого пропадают.

А самый досадный для меня момент — файлы шаблона компонента /com_mycomp/views/item/tmpl/default.php
в них работа с переменной $this предполагается в контексте объекта mycompViewItem extends JviewLegacy.
Но как объяснить IDE, что $this — в этом файле, это тоже самое, что и в файле
/com_mycomp/views/item/view.html.php?

Что делать? Работать хочется комфортно, тем более что почти все условия созданы.

Вначале про контроллер и им подобные ситуации:
1. Можно в ручную подключить нужный файл и присвоить его переменной, это займет 2 строки:
Код: php
require_once JPATH_COMPONENT.'/models/item.php';
$model = new mycompModelItem();
и можно работать с моделью со всеми прелестями и возможностями IDE. (Правда надо уточнить параметры, из контроллера модель вызывается в конфигурации ignore_request). Кстати, думаю, что этот путь должен работать быстрее, чем
Код: php
$model = $this->getModel();

2. Но можно постараться получить тот же результат соблюдая стандарты Joomla.
Для этого достаточно после присвоения переменной дать DOC-блок, описывающий переменную
Код: php
$model = $this->getModel();
/* @var $model mycompModelItem() */


Возможно разные IDE ждут этот блок в разных форматах. Т.е. Где-то потребуются двойные звездочки /** **/, где-то вначале объявление типа, а потом имени переменной.
В NetBeans работает именно так.

Теперь про шаблон.
Аналогичным образом надо дать  DOC-блок в начале файла шаблона default.php
Код: php
<?php
defined('_JEXEC') or die('Restricted access');
/* @var $this mycompViewItem */

$this->loadTemplate('properties');

И сразу после этого $this будет дополняться всеми PUBLIC методами JViewLegacy (Joomla 3.x).
Но protected и private свойства и методы будут не доступны.
А например в  mycompViewItem были созданы
Код: php
protected $item;
protected $form;
И они не отображаются в IDE для $this.
Единственный способ, который я нашел — сделать их public. Это конечное не хорошо, но классов расширяющих  mycompViewItem не предполагается, поэтому такое отступление от стандартов будет не критичным.

Возможно у кого-то есть более удобные наработки или какие-то другие IDE более настраиваемые в этой части. Предлагаю поделиться опытом.
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Да в таких случаях, к примеру, как
Код
$model = JModel::getInstance('Item', 'mycompModel');
кроме докблоков больше никак и не выйдешь из положения.
А для protected свойств можно использовать public геттеры.

Многие IDE имеют плагины поддержки конкретных фреймворков, которые учитывают их специфические особенности и улучшают "восприимчивость" IDE.
Но среди разработчиков плагинов видимо особо никто не уважает Joomla-фреймворк. По крайней мере в PhpStorm пока не видел таких.

Вроде в CodeLobster видел поддержку Joomla, но сама по себе IDE не понравилась.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Поддержу в PhpStorm могли бы сделать, если бы мы попросили. Но никто не хочет этим заниматься - Extended Joomla Support In Php Storm. За Drupal в свое время попросили и смотрите, поддержка есть.
*

migus

  • Давно я тут
  • 992
  • 144 / 0
  • OPEN THE BOX
Поддержу в PhpStorm могли бы сделать, если бы мы попросили. Но никто не хочет этим заниматься - Extended Joomla Support In Php Storm. За Drupal в свое время попросили и смотрите, поддержка есть.
Может кому-то еще интересно...
Вот тут с апреля 2014 висит запрос по Joomla!®  WI-22979 Joomla support - feature request
Кому не лень - проголосуйте, пожалуйста.
Справочно - для поддержки Drupal'a хватило всего 17 голосов.
"The Lord Of A SandBox"
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Плюсанул и отписался =)
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Посмотрим что будет, уже 6 плюсов есть.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Будем надеяться. Если эту тему будет видно, то только с форума можно несколько десятков набрать.
*

migus

  • Давно я тут
  • 992
  • 144 / 0
  • OPEN THE BOX
Такими темпами точно скоро наберём  ^-^

@moderators
Может создать отдельную тему?
Думаю, есть смысл обсудить "хотелки" по интеграции, чтобы набрать материал для roadmap'a.
"The Lord Of A SandBox"
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Условия отображения для конкретной группы пользователей Joomla 3.4.x

Автор dmik

Ответов: 15
Просмотров: 3328
Последний ответ 29.05.2020, 22:42:15
от voland
Подключить Joomla Framework в своем файле

Автор kolhoz

Ответов: 1
Просмотров: 1801
Последний ответ 06.12.2017, 17:15:42
от Aleks.Denezh
Переделать запросы к БД под Joomla

Автор Glog

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

Автор b2z

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

Автор jitendra

Ответов: 2
Просмотров: 1408
Последний ответ 15.12.2016, 17:13:15
от jitendra