@joomlaru

Страница 1831 из 1879
Дмитрий
09.10.2018
20:13:15
а свои неймспейсы можно любые писать

вот напримрер

JLoader::registerNamespace('Mpdf', DIR . '/libs/mpdf');

единсвтенное ущербный только загрузчик у джумлы сейчас

Google
Robert
09.10.2018
20:16:12
вам сложно писать неймспейсы?
Да нет, не namespaces, а aliases. На фиг нужно каждый раз писать use \Joomla\blahblahblah\blahblahblah; use \Joomla\blahblahblah\blahblahblah; use \Joomla\blahblahblah\blahblahblah;

Дмитрий
09.10.2018
20:16:36
не совсем понятно

ну вы можете алиасы создавать свои

https://api.joomla.org/cms-3/classes/JLoader.html#method_registerAlias

мне лично пофиг на такое, шторм сам делает все

Robert
09.10.2018
20:18:49
Дмитрий
09.10.2018
20:19:02
Мне не проставляет. ?
ну у вас шторм?

Robert
09.10.2018
20:19:07
Да

Дмитрий
09.10.2018
20:19:15
поддержка джумлы включена?

просто ALt+Enter

и он ставит неймспейсы

Robert
09.10.2018
20:19:37
Вроде да. Не все, правда, видит.

Google
Дмитрий
09.10.2018
20:19:43
курсор на классе и эта комбинация

Robert
09.10.2018
20:19:55
просто ALt+Enter
Хм, надо попробовать.

просто ALt+Enter
Ага, есть.

Но я уже сделал такую фигню spl_autoload_register( function ($alias) use ($classes) { if (isset($classes[$alias]) && class_exists($classes[$alias], true)) { class_alias($classes[$alias], $alias); } } ); Пусть пашет.

Robert
09.10.2018
20:28:15
Но у меня свои алиасы, точнее, без префикса J. Так что пусть будет.

Дмитрий
09.10.2018
20:29:11
где он тут алиасы добавляет?

точней префикс

туплю уже :)

он просто делает алиасу загруженному классу

Robert
09.10.2018
20:30:06
Я понял тебя.

Просто изначально не хотел вызывать JLoader.

Дмитрий
09.10.2018
20:30:48
у вас не правильно, вы вмещиваетесь в работу лоадера

Robert
09.10.2018
20:30:53
Думал, что его не будет в 4-версии.

Дмитрий
09.10.2018
20:31:16
вот такой хак, который вы добавили, нельзя так делать

если вы пишите на фреймворке

Google
Дмитрий
09.10.2018
20:31:30
:)

Robert
09.10.2018
20:31:31
Дмитрий
09.10.2018
20:31:54
не нарушайте стандарты и не вмешивайтесь в работу системы :))

это потом вернется где - нибудь

Robert
09.10.2018
20:32:54
А я их не нарушаю. У меня будет свой namespace, внутри которого буду делать, что хочу.

Дмитрий
09.10.2018
20:33:15
и загрузить его в джумлу

без таких хаков

Robert
09.10.2018
20:33:48
Дмитрий
09.10.2018
20:34:22


ну вот так

а далее вы можете сделать свой маппер, для алиасов

Robert
09.10.2018
20:35:33
Для J!3?

Дмитрий
09.10.2018
20:35:42
ну да

вот это 3.8.х у меня сейчас

Robert
09.10.2018
20:37:30
IMHO, не выйдет - BaseController::createView(), например, не поймет.

Дмитрий
09.10.2018
20:38:06


вот так примерно

не понимаю вас

Google
Robert
09.10.2018
20:39:12
// Clean the view name $viewName = preg_replace('/[^A-Z0-9_]/i', '', $name); $classPrefix = preg_replace('/[^A-Z0-9_]/i', '', $prefix); $viewType = preg_replace('/[^A-Z0-9_]/i', '', $type); // Build the view class name $viewClass = $classPrefix . $viewName;

Clean the view name

cleans нахрен все namespaces.

Дмитрий
09.10.2018
20:40:37
не понимаю :)

это просто куски кода, которые форматирубт

где тут загрузка и все такое :)

Robert
09.10.2018
20:41:31
У тебя, например, такое view - Blah\Blah\BlahView.

После очистки оно стало BlahBlahBlahView.

И хрен система найдет его.

Дмитрий
09.10.2018
20:42:47
а зачем очищать?

нафиг?

Robert
09.10.2018
20:43:29
Не знаю. Это код BaseController::createView().

Открой и посмотри.

В 4-версии уже по-другому.

Там "\" уже не вырезается.

Дмитрий
09.10.2018
20:46:09
Не знаю. Это код BaseController::createView().
я так понимаю, там типа не учитывались другие каталоги

просто если кидать с неймспейсом, то да, чистится

что бред

:)

там получается что надо $this->paths['view']

Google
Robert
09.10.2018
20:47:13
То есть, в J!3 я не могу делать своему компонету свой namespace.

Дмитрий
09.10.2018
20:47:13
поменять на неймспйс

можете

но только через бредовый немного шаг

сменить сначала $this->paths['view']

метод

и сделать неймспейс

убрать эту очистку

я бы метод переопределил

Robert
09.10.2018
20:48:40
Не хочу я каждый раз переопределять.

Дмитрий
09.10.2018
20:49:07
эм

Robert
09.10.2018
20:49:11
Просто как костыль.

Дмитрий
09.10.2018
20:49:13
а вы как вызываете?

$this->createView

там это не статичный метод, и он у потомков переопределяется

Robert
09.10.2018
20:49:43
creatView я не вызываю

Вызывается дефольтный display()

Дмитрий
09.10.2018
20:50:11
вы у своего контроллера, где наследуете переопределяете createView

Robert
09.10.2018
20:51:08
вы у своего контроллера, где наследуете переопределяете createView
Я же говорил, что не хочу 20 раз переопределять ее.

Страница 1831 из 1879