Автозагрузка классов в Yii 2.X как в Yii 1.X

Обсуждение документации второй версии фреймворка. Переводы Cookbook и авторские рецепты.
Аватара пользователя
rugabarbo
Сообщения: 1063
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение rugabarbo »

denis909, в любой современной IDE вам итак не придётся запоминать пути, потому что IDE сама их вставляет во время автокомплита. Если не секрет, какой IDE пользуетесь?
Аватара пользователя
denis909
Сообщения: 103
Зарегистрирован: 2009.04.02, 16:04
Откуда: Санкт-Петербург
Контактная информация:

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение denis909 »

Блокнотом пользуюсь с подсветкой кода, иногда Netbeans, но очень по настроению, даже не на всех компах он установлен, с которых приходится работать.
Аватара пользователя
rugabarbo
Сообщения: 1063
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение rugabarbo »

denis909 писал(а):Блокнотом пользуюсь с подсветкой кода, иногда Netbeans, но очень по настроению, даже не на всех компах он установлен, с которых приходится работать.
ИМХО, это и есть источник ваших неудобств (:

Попробуйте перейти на хорошую IDE.
Рекомендую: https://www.jetbrains.com/phpstorm/download/

В IDE неймспейсы автоматом прописываются.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение zelenin »

denis909 писал(а):Но для меня не проблема добавить components.* и models.* в IDE, вручную
ну а мне не проблема яйца себе отрезать. Обезбаливающим обкололся и начал пилить. Даже смешно будет.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение zelenin »

denis909 писал(а):Вообще, изначально цель была как можно меньшими усилиями использовать некоторый код из Yii 1.X в Yii 2.X, но то что получилось мне понравилось, очень удобно, поэтому и для новых приложений такой подход имеет место быть.
интересно каким бы словом меня назвали те, кто поддерживали бы за мной такой проект.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение zelenin »

denis909 писал(а):Мне нравится не столько то что идет экономия на лишних символах, а то что код получается "чистый", и если переопределить файлы фреймворка то можно не запоминать пути, ну удобно же.
удобно иметь в двух модулях два \DefaultController, отслеживая почему оно не работает?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение zelenin »

denis909 писал(а):Блокнотом пользуюсь с подсветкой кода, иногда Netbeans, но очень по настроению, даже не на всех компах он установлен, с которых приходится работать.
ВСЕ ЯСНО!!!
Аватара пользователя
rugabarbo
Сообщения: 1063
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение rugabarbo »

Эх... Я ведь только что про русское комьюнити писал в соседней ветке (:
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение Onotole »

Вы высказали свою выдумку, показали ее народу, народ не в восторге и говорит, что это не нужно.
Нет же, надо начать агриться, зачинать холивар никому ненужный
Аватара пользователя
denis909
Сообщения: 103
Зарегистрирован: 2009.04.02, 16:04
Откуда: Санкт-Петербург
Контактная информация:

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение denis909 »

Мое скромное расширение на холивар не тянет, кому не нравиться - не использует, но если кому-то пригодится - буду рад.
А то что такие будут у меня сомнений нет, т.к. первая ветка фреймворка потихоньку начинает отмирать, а расширение помогает в относительно быстром портировании проектов из 1.X в 2.X, а время как известно дорогого стоит.

Большинство из отписавшихся, такое ощущение, что с первой версией вообще не работали, и считают это какой-то неудобной древностью, хотя это не так. Версия фреймворка 2.X появилась благодаря тому, что множество народу нашло первую версию великолепной, и очень удобной, а послушать народ, так можно подумать, что хуже ничего и придумать нельзя.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение zelenin »

denis909 писал(а):Большинство из отписавшихся, такое ощущение, что с первой версией вообще не работали
работаю каждый день по работе
denis909 писал(а):и считают это какой-то неудобной древностью, хотя это не так
нет, это так
denis909 писал(а):Версия фреймворка 2.X появилась благодаря тому, что множество народу нашло первую версию великолепной, и очень удобной
именно, что наоборот)
denis909 писал(а):послушать народ, так можно подумать, что хуже ничего и придумать нельзя.
это верно. Трудно найти хуже.

Из скайпа:
[20:33:06] <xxx>: в конторе чудачек, под полтиник лет сидит на зенде 1, строит всех разрабочтиков.
[20:33:12] <xxx>: наркоман.
[20:33:40] Александр Зеленин: мозг то уже закостенел. понимает, что если отпустит зенд, то может новую технологию и не осилить
[20:34:31] <xxx>: типа говорит, что на нем все быстрее и типа вообще никак его не отучить. А то походу тим лид или еще кто. ну это я через менеджера вел разговор. Ну удивился типа очень.
Последний раз редактировалось zelenin 2016.01.26, 22:09, всего редактировалось 1 раз.
Аватара пользователя
rugabarbo
Сообщения: 1063
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение rugabarbo »

Человек просто не использовал IDE (неясно, в силу каких причин), это не преступление.
Ознакомиться с IDE ему уже порекомендовали.
Немного потроллили :mrgreen:

К чему дальнейший тред и уколы в сторону автора - неясно (тем более с участием модератора).
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение zelenin »

rugabarbo писал(а):Человек просто не использовал IDE (неясно, в силу каких причин), это не преступление.
Ознакомиться с IDE ему уже порекомендовали.
Немного потроллили :mrgreen:

К чему дальнейший тред и уколы в сторону автора - неясно (тем более с участием модератора).
я много видел людей, не использующих ПХПСторм - какая разница, меня устраивает notepad++, ваш ИДЕ запускается 10 секунд, слишком много фич, страшно итд. Но не видел ни одного, кто бы не подтверждал, что был дураком до того, как начал использовать.
Аватара пользователя
rugabarbo
Сообщения: 1063
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение rugabarbo »

Все точки над i расставлены. Он не использует IDE, и поэтому лично для него это решение удобно.
Зачем его дальше раскручивать на холивар и пытаться поддеть?
Я вот этого не особо понимаю.
Мне казалось, начнёт ли он использовать IDE - это уже его личное дело. Разве нет? (: Или нужно психологически допрессовывать, вдавливать его в асфальт, пока он не пришлёт скрины запущенной IDE и не удалит эту тему? :mrgreen:
Аватара пользователя
denis909
Сообщения: 103
Зарегистрирован: 2009.04.02, 16:04
Откуда: Санкт-Петербург
Контактная информация:

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение denis909 »

По результатам обсуждения, я понял что из первоначального описания не совсем ясно что делает расширение, и какая его главная цель, исправляюсь:

Yii 2 в начале каждого класса контроллера обязывает писать так:

namespace app\controllers;

А написав так, все что внутри файла уже находится в локальном пространстве имен контроллеров, и ни один класс в таком контроллере нельзя использовать без его предварительно объявления через use, или без символа \ перед названием класса.

Расширение исправляет это, и позволяет работать с классами в контроллере без их предварительного объявления, т.к. с ним становится необязательно делать контроллеры в app\controllers, а можно работать в глобальном пространстве имен, как это было в первой версии.

Изначально, расширение было задумано для быстрого перевода проектов с первой на вторую версию фреймворка, чтобы избавить разработчика от необходимости в каждом контроллере выискивать вручную какие классы используются в контроллере и подключать их вручную. Однако, такой подход мне показался достаточно удобным, и я для себя допускаю делать так и новых проектах.

+ У меня вопрос к знатокам IDE, я понимаю что оно подключает нужные классы автоматически, в момент когда я их первый раз использую в контроллере. А когда мы говорим про уже написанный код, например у меня есть контроллер в котором используется много классов. Что я должен нажать в IDE, чтобы оно для всех классов написало в начале файла:

use app\models\Post;

и т.п.?

Думаю ответ будет узнать интересно не только мне, но и тем кто раздумывает над тем использовать ли расширение, или переписать все с нуля.

Было бы интересно узнать как это делать в бесплатных IDE в частности, например Netbeans, а не только в Phpstorm, хотя как это делать в нем думаю тоже будет кому-то интересно.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение zelenin »

alt+enter => Import namespace в PhpStorm.
Nerf
Сообщения: 780
Зарегистрирован: 2015.01.29, 00:37

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение Nerf »

Забавно :shock:
Аватара пользователя
BrusSENS
Сообщения: 565
Зарегистрирован: 2012.07.26, 06:51
Откуда: Новороссийск
Контактная информация:

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение BrusSENS »

Был у нас php 4, хотели 5... Появились неймспейсы в 5.3 - хотим теперь как в паскале... Не, ну а чё, так и живём...
P.S.: Советую автору присмотреться к паскалю, думаю ему понравится
Native Web - небольшой блог о веб разработке (временно на ремонте)
Режим обслуживания сайта для Yii 2.x.x
Аватара пользователя
denis909
Сообщения: 103
Зарегистрирован: 2009.04.02, 16:04
Откуда: Санкт-Петербург
Контактная информация:

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение denis909 »

Обновил файлы расширения, теперь оно разделено на 2 независимых расширения, призванных решать разные задачи.

1. Автозагрузчик классов в глобальном пространстве имен (без неймспейсов), как это было сделано в первой версии.

https://github.com/denis909/yii2-autoload-classes

2. Возможность делать контроллеры в глобальном пространстве имен.

https://github.com/denis909/yii2-global-controllers

Также, были сделаны некоторые доработки:

1. Загрузка контроллеров теперь возможна из модулей.
2. Все классы расширения теперь доступны через неймспейсы и PSR-2 автозагрузчик composer.
3. Для указания путей автозагрузки теперь используется родной для Yii2 синтаксис для alias'ов.
4. Автозагрузка классов теперь реализована в виде обычного копонента и не требует переопределения класса приложения.
Аватара пользователя
BrusSENS
Сообщения: 565
Зарегистрирован: 2012.07.26, 06:51
Откуда: Новороссийск
Контактная информация:

Re: Автозагрузка классов в Yii 2.X как в Yii 1.X

Сообщение BrusSENS »

denis909 писал(а): 2017.01.30, 14:56 Обновил файлы расширения, теперь оно разделено на 2 независимых расширения, призванных решать разные задачи.
Да перестаньте гробить новичков этим бредом. Уже php7 на дворе, а вы всё не можете с пространствами подружиться.
Native Web - небольшой блог о веб разработке (временно на ремонте)
Режим обслуживания сайта для Yii 2.x.x
Ответить