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

MrImho

  • Осваиваюсь на форуме
  • 33
  • 3 / 0
Нужна помощь в освоении
« : 18.08.2009, 04:12:55 »
Здравствуйте. Прежде чем приступить хочу написать некое вступление.
PS: То что будет написано ниже, необязательно правильно, это сугубо моё мнение, на основе изучения движка в течении одного дня. Вполне возможно я допустил ошибку (и) из-за невнимательности, усталости или по каким бы то ни было причинам.

Всё то время, что я был на форуме, я так сказать присматривался к Joomla, смотрел какие ошибки возникают в чём появляются сложности и т.д. Так вот теперь решил перейти на разработку сайтов при помощи Joomla. Прежде чем создать эту тему, целый день смотрел код Jooml'ы. Конечно есть что мне не понравилось:

3 раза добавлен файл:jimport ('joomla.application.helper');
2 раза добавлен файл:jimport ('joomla.client.ftp');
2 раза добавлен файл:jimport ('joomla.user.helper');
2 раза добавлен файл:jimport ('joomla.filesystem.file');
2 раза добавлен файл:jimport ('joomla.user.authorization');
2 раза добавлен файл:jimport ( 'joomla.user.user');
2 раза добавлен файл:jimport ( 'joomla.environment.uri' );
2 раза добавлен файл:jimport ( 'joomla.html.html' );
2 раза добавлен файл:jimport ( 'joomla.utilities.utility' );
2 раза добавлен файл:jimport ( 'joomla.event.dispatcher');

имеется ввиду одновременный инклуд. Разработчики повидимому не хотели использовать глобальные переменные, видимо, чтобы не было не совместимости с другими скриптами. Но по мне тормоз в компиляции хуже. Самое главное старались избавиться от глобальных переменных, даже пожертвовали скоростью компиляции, и всё равно 1 переменная остаётся глобальной global $mainframe;

Разработчики компонентов используют порой не тот класс db иногда лучше JTable:: использовать, вместо & JFactory::getDBO ();
И вручную писать занового уже имеющийся код. Но это - разработчикам, а не Joomla, что-то я отклонился от темы. Кстати разработчики Joomla как будто забыли про JTable:: и порой тоже его игнорируют, ток не пойму почему.

Есть тормоз из за неправильного порядка инклуда файлов (причём значительный), а javascript Выдал бы тучу ошибок с такой последовательностью инклуда.

Не понял предназначения файла: joomla/registry/format.php Может просто сонный и пропустил что-то. А может бесполезный вовсе.

Зачем это? ini_set ('session.save_handler', 'files'); У всех хостов и так хранение в файлах, а если нет, то запрещено изменять этот параметр, ну может западная политика:-)))

Мне не нравится защита от удалённого инклуда библиотечных файлов, ручками надо править, а этого многим делать не охота мы любители готового! :-)

Многие файлы просто не используются в движке и не документированы на офф сайте. Только для необычных целей библиотеки эти пригодятся. А так зачем их копировать на сервер, лишний объём занимать.
Я думал у нас политика: нужно добавляй, не нужно пусть на локалке лежит).

Не понял к чему это:
function clone ($object) {
   return unserialize (serialize ($object));
}
вначале собирать в 1 строку потом разбирать, вообще ничего не понимаю. Объясните балбесу.
Давайте тогда explode делать так: explode ('blabla',implode ('blabla',explode ('blabla',$var))); Помойму тотже маразм что и в приведённой функции.

мне не нравится в language.php это: var $_default='en-GB'; - пусть будет по умолчанию русский язык! Это шутка, в принципе эта переменная ничего не значит. Просто русский хочу и всё тут ru ru ru. А за бугром пусть en будет.

Не понимаю зачем это: создавать index2.php сувать туда: include ('index.php'); Приколисты блин.
------------------------------------------------------------------------------------------------------------------------------------
Итак перечислил что не понравилось, может я где-то ошибся, поправьте. Только я упёртый "баран" без доказательств останусь при своём мнении и Ваш рейтинг на форуме тоже не повлияет) Люблю себя очень)).

Что делалось дальше, а дальше решил создать компонент. Прочитал доки на офф сайте и приступил. Собираюсь сделать компоненты, который по функционалу будет схож с marketplace. Ток под 1.5 версию. Кстати пишу первый раз в виде MVC структуры, поэто выложил начальную (сырую) версию компонента и прошу тех кто писал компоненты для Joomla в виде MVC структуры взглянуть на код и сказать что не так. Може что-то не туда разместил и т.д. и т.п.
Также есть конкретные вопросы.
1) Контроллеры вот код:
if ($controller=JRequest::getWord ('controller')) {
    $path=JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php';
    if (file_exists ($path)) {
        require_once $path;
    }else{
        $controller = '';
    }
}
$classname='MainController'.$controller;
$controller=new $classname ();
$controller->execute (JRequest::getVar ('task'));
$controller->redirect ();
Судя из кода надо передавать имя контроллера в пост, гет и т.д. запросах. Так вот мне нужно добавить контроллер в папке controllers
для view=cat. Чтобы всё было понятно на коде установите мой компонент и зайдите в раздел категории.
Теперь о моделях, там должны храниться функции запросов к бд и только? А зачем некоторые разработчики создают папку tables и там извлекают и заносят в массивы данные?

Если может кто напишите простенький мануал. Вида:
Таким образом добавляются контроллеры: .....
Таким образом модели: ...
Таким образом представления: ...
Я уже кое-что разобрал
Например в view.html.php
Название класа должно выглядеть так чтобы всё работало:
class НазваниеконтроллераViewНазвание представления extends JView
{
   function display ($tpl = null) {
      parent::display ($tpl);
   }
}
есть вопрос: Как грузить файл с название отличном от default в представлении (View)?
Также в голове упёрто остаётся наглая мыслишка, о том чтобы попросить того кто делал компоненты для 1.5 версии. Помочь мне, вести меня на этапе разработки. Ведь только первый компонент такой сложный потом поняв что к чему будет легче. Но это так к слову.

Я наверное уморил Вас думаю надо будет остальное в следующей теме. Продолжение освоения Jooml'ы.
Заранее благодарю всех кто будет учавствовать в данном посте. Кстати прошу Вас не посылать меня к компоненту hello Word ни русскому ни английскому с оффа. Эти компоненты исчерпали себя. Мне их кода не достаточно. Я сам ковырял различные компоненты, но там хаос, каждый разработчик пишет в своём стиле порой забываю про стандарты. Мало того стандартные компоненты Joomla (не все) вообще не используют MVC структуру, особенно касается админ части. А если не использовать MVC - зачем тогда 1.5 нужна вообще?!
Ещё раз прошу прощение за столь долгий пост.

[вложение удалено Администратором]
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Нужна помощь в освоении
« Ответ #1 : 18.08.2009, 04:58:29 »
3 раза добавлен файл:jimport ('joomla.application.helper');
2 раза добавлен файл:jimport ('joomla.client.ftp');
та хоть 100 :)
контроллер импорта подгружает файл только единожды

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

Но по мне тормоз в компиляции хуже.
а как компиляция соотносится с globals ?

Разработчики компонентов используют порой не тот класс db иногда лучше JTable:: использовать, вместо & JFactory::getDBO ();
И вручную писать занового уже имеющийся код. Но это - разработчикам, а не Joomla, что-то я отклонился от темы.
JTable - это надстройка над JDatabase

Кстати разработчики Joomla как будто забыли про JTable:: и порой тоже его игнорируют, ток не пойму почему.
я тоже.
пользуюсь им только в простых случаях

Есть тормоз из за неправильного порядка инклуда файлов (причём значительный), а javascript Выдал бы тучу ошибок с такой последовательностью инклуда.
:)

Не понял предназначения файла: joomla/registry/format.php
Pattern классов для INI/PHP/XML

Мне не нравится защита от удалённого инклуда библиотечных файлов,
О чем речь? defined ('_JEXEC') что ли? :)

Многие файлы просто не используются в движке и не документированы на офф сайте. Только для необычных целей библиотеки эти пригодятся. А так зачем их копировать на сервер, лишний объём занимать.
когда работает толпа народу в разных странах и с разным опытом, то не легко выработать общую стратегию и грамотно делать продукт

Не понял к чему это:
function clone ($object) {
   return unserialize (serialize ($object));
}
там, вообще-то, достаточно лаконичный комментарий по этому поводу

вначале собирать в 1 строку потом разбирать, вообще ничего не понимаю. Объясните балбесу.
а ты б почитал про десериализацию объектов ;)

Не понимаю зачем это: создавать index2.php сувать туда: include ('index.php');
ну вот тебе не понять, а им надо было.
если коротко, то это для совместимости при портировании компонентов с линейки 1.0

Что делалось дальше, а дальше решил создать компонент. ... бла-бла-бла
:) я не буду комментировать код ибо сам MVC Joomla 1.5 не пользуюсь (скромно умолчу, почему).
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

MrImho

  • Осваиваюсь на форуме
  • 33
  • 3 / 0
Re: Нужна помощь в освоении
« Ответ #2 : 19.08.2009, 01:09:32 »
Спасибо за некое разъяснение. Теперь жду помощи по разработке компонента. Там появляется ошибка, я даже знаю почему, потому, что не могу поключить контроллер из папки controllers, в принципе include никто не отменял, но хотелось бы по jooml'овски. Благодарю userxp.
« Последнее редактирование: 19.08.2009, 01:13:34 от MrImho »
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Нужна помощь в освоении
« Ответ #3 : 19.08.2009, 17:46:43 »
ой, блин. я тя умоляю!
делай как умеешь и не заморачивайся этой ерундой.
я вон недавно отказалося от ряда, казалось бы "правильных" джумловских решений.

1. я пользуюсь только тремя функциями DB: loadObjectList, loadRow и loadResult и то только в простых случаях (для экономии места в голове). остальное в топку
2. MVC не пользуюсь вообще (это я уже писал)
3. практически отказался от обращения в $mainframe (редко)
4. не пользуюсь jimport по определению ;D

зы. недавненька заметил одну интересную ремарку разработчиков Zoo в SEF роутере... я сначала и сам не обратил внимание, пока не проверил реальный возврат переменных из URL при репарсинге строки запроса....
вот кто бы мне объяснил, почему ,если передать двоеточие, то на возврат идет тире, а если передать тире, то идет возврат ....двоеточием ;D


зы. насчет десериализации могу объяснит ьв двух словах (на всякий случай).
PHP 4 не поддерживает клонирование объектов. Это известно.
можно, конечно копировать наследованием и пересборкой переменных, но универсальной функции сделать.... ну это немного геморно да и не быстро.
а пересборка в сериализацию и обратно на выхлопе автоматом пересоздаст объект (благо класс уже подгружен и существует), сделав чистую копию.
это как отмывание бабла :)
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Нужна помощь в написании плагина

Автор makslm

Ответов: 16
Просмотров: 1038
Последний ответ 06.10.2016, 15:48:06
от makslm
Нужна помощь по PHP

Автор pahtab

Ответов: 2
Просмотров: 1213
Последний ответ 26.03.2016, 08:12:43
от b2z
Помощь с com_content

Автор hack3p

Ответов: 1
Просмотров: 833
Последний ответ 09.06.2014, 16:07:29
от b2z