Наверное вопрос уже очень актуальный. Суть простая. Есть достаточно большой код (CMS).
Тенденции развития заставляют делать код "современным".
В принципе два вопроса:
1. На сколько целесообразно переводить движок на "Namespace"?
2. Если ДА, то это вообще реально сделать? И как, с чего начать?
1. GoDr - 21 Августа, 2015 - 19:58:16 - перейти к сообщению
2. DeepVarvar - 21 Августа, 2015 - 20:03:51 - перейти к сообщению
1) Если не нужна поддержка 5.2 -- вперде и с песней.
2) Начать с того, что разложить компоненты системы по папочкам -- из этой структуры вытекает и неймспейс.
2) Начать с того, что разложить компоненты системы по папочкам -- из этой структуры вытекает и неймспейс.
3. GoDr - 21 Августа, 2015 - 20:20:11 - перейти к сообщению
DeepVarvar пишет:
я в принципе уже "кинут" 5.3 и начал делать 5.4+. Думаю основные игроки предоставляющие хостинг к этому готовы.1) Если не нужна поддержка 5.2 -- вперде и с песней.
DeepVarvar пишет:
Ну это понятно.. Вот только как это оптимальнее организвать.. Это же нужно в каждый файл залезть и каждый вызов функций/методов переписать... а это достаточно большое количество..2) Начать с того, что разложить компоненты системы по папочкам -- из этой структуры вытекает и неймспейс.
Просто может у кого есть частный опыт в этом.
Конечно многого хочу, но очень хочется объяснения "на пальцах" Т.е. нюансы, тонкости, проблемы...
4. DlTA - 21 Августа, 2015 - 21:31:46 - перейти к сообщению
GoDr пишет:
Это же нужно в каждый файл залезть и каждый вызов функций/методов переписать... а это достаточно большое количество..
уууууууууууу, это перспектива большиииииих проблем
а вообще все зависит от того как оно у вас там все подключается и инициализируется
5. DeepVarvar - 21 Августа, 2015 - 21:33:47 - перейти к сообщению
GoDr пишет:
Даже если их будет тысяча -- за 10 дней сделаешь спокойно.а это достаточно большое количество
GoDr пишет:
Это уже тянет на докторскую )) Так что лучше спрашивай конкретнее.
нюансы, тонкости, проблемы
6. caballero - 22 Августа, 2015 - 00:33:42 - перейти к сообщению
глупо переделывать работающий котд потому что некая тенденция.
7. DeepVarvar - 22 Августа, 2015 - 00:34:59 - перейти к сообщению
caballero пишет:
Аааааа! Люто плюсую!!!!
глупо переделывать работающий котд потому что некая тенденция
8. GoDr - 23 Августа, 2015 - 08:34:00 - перейти к сообщению
DeepVarvar пишет:
Что-то как-то очень оптимистично Даже если их будет тысяча -- за 10 дней сделаешь спокойно.
Тогда по другому спрошу.. То что я делаю новое (модули, библиотеки и т.п.) вот их целесообразно делать "по новому"? Таким образом новое постепенно вытеснит старое.
На сколько вообще оправдано такое смешение стиля написания кода?
9. DeepVarvar - 23 Августа, 2015 - 16:03:41 - перейти к сообщению
Если ты введешь неймспейсы, ты будешь вынужден перепилить и старое, иначе, как ты будешь неймспйсинг автолоадить? Костылить автолоадер? Ну можно, а смысл тогда?
10. GoDr - 24 Августа, 2015 - 08:48:02 - перейти к сообщению
Всё понял.. спасибо за советы..
Придётся всё переписывать
Придётся всё переписывать
11. GoDr - 02 Сентября, 2015 - 10:17:54 - перейти к сообщению
В общем делюсь первыми впечатлениями...
Пишу уже то, что нужно делать.. А то я неделю на грабли наступал.
Первым делом открываете свой IDE, у меня PhpStorm (всем советую, для проектов с лицензиями свободного программного обеспечения лицензия бесплатная). Настраиваем Инспектор только на что-то подобное:
- Undefined class: Declaration of referenced class is not found in built-in library and project files.
- Referenced function, method, field or class from callback is not found
- Referenced constant is not found in subject class.
- Declaration of referenced constant is not found in built-in library and project files.
- Referenced field is not found in subject class.
- Declaration of referenced function is not found in built-in library and project files.
- Label is not found in current scope.
- Referenced method is not found in subject class.
- Referenced namespace is not found.
Оставил только эти, остальные уже при тестировании...
Находим проблемы и исправляем их.
Далее кропотливо открываем каждый файл и вставляем NameSpase в начало. Была мысль написать скриптик, но побоялся что-то попортить, а вдруг Но в принципе, скрипт не очень сложный должен получиться...
Дальше снова запускаем инспектор и начинаем править вызовы классов, методов и т.п.
Тут всё зависит от самих файлов, где проще добавить \ХХХ\Class, а де всё же через use...
Теперь что касается 10 дней... НЕ РЕАЛЬНО!
У меня был "тестовый забег", просидел почти две недели - не далеко продвинулся... Затягивает время ещё то, что по ходу всплывают какие-то сторонние ошибки..
Ещё столкнулся с такой бедой как название самих классов и их размещение по файлам.. Т.е. нет системы. Например, библиотеки не имеют определяющего префикса, название файлов и классов очень разнятся, в одном файле несколько классов.
В связи с этим Автолоадер получается с костыльцом на начальном этапе, приходится учитывать некоторые особенности...
Пишу уже то, что нужно делать.. А то я неделю на грабли наступал.
Первым делом открываете свой IDE, у меня PhpStorm (всем советую, для проектов с лицензиями свободного программного обеспечения лицензия бесплатная). Настраиваем Инспектор только на что-то подобное:
- Undefined class: Declaration of referenced class is not found in built-in library and project files.
- Referenced function, method, field or class from callback is not found
- Referenced constant is not found in subject class.
- Declaration of referenced constant is not found in built-in library and project files.
- Referenced field is not found in subject class.
- Declaration of referenced function is not found in built-in library and project files.
- Label is not found in current scope.
- Referenced method is not found in subject class.
- Referenced namespace is not found.
Оставил только эти, остальные уже при тестировании...
Находим проблемы и исправляем их.
Далее кропотливо открываем каждый файл и вставляем NameSpase в начало. Была мысль написать скриптик, но побоялся что-то попортить, а вдруг Но в принципе, скрипт не очень сложный должен получиться...
Дальше снова запускаем инспектор и начинаем править вызовы классов, методов и т.п.
Тут всё зависит от самих файлов, где проще добавить \ХХХ\Class, а де всё же через use...
Теперь что касается 10 дней... НЕ РЕАЛЬНО!
У меня был "тестовый забег", просидел почти две недели - не далеко продвинулся... Затягивает время ещё то, что по ходу всплывают какие-то сторонние ошибки..
Ещё столкнулся с такой бедой как название самих классов и их размещение по файлам.. Т.е. нет системы. Например, библиотеки не имеют определяющего префикса, название файлов и классов очень разнятся, в одном файле несколько классов.
В связи с этим Автолоадер получается с костыльцом на начальном этапе, приходится учитывать некоторые особенности...
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- class Autoloader
- {
- ................
- protected static $_path = ['lib', 'core', 'api', 'fun'];
- ................
- public static function autoload($file)
- {
- }else{
- $path = _PATH_ROOT . '/' . $file . '.php';
- }
- require_once($path);
- }else{
- throw new \Exception(_EXCEP_ISNOT_CLASS);
- }
- }
- ..............
- }
PS
Как я сказал, это пробный этап переделки проекта.. Для полноценного передела нужно всё для начала разложить по полкам