Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Перевод проекта на "Namespace"
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
1) Если не нужна поддержка 5.2 -- вперде и с песней.
2) Начать с того, что разложить компоненты системы по папочкам -- из этой структуры вытекает и неймспейс.
Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015 Откуда: Тамбов
Помог: 17 раз(а)
DeepVarvar пишет:
1) Если не нужна поддержка 5.2 -- вперде и с песней.
я в принципе уже "кинут" 5.3 и начал делать 5.4+. Думаю основные игроки предоставляющие хостинг к этому готовы.
DeepVarvar пишет:
2) Начать с того, что разложить компоненты системы по папочкам -- из этой структуры вытекает и неймспейс.
Ну это понятно.. Вот только как это оптимальнее организвать.. Это же нужно в каждый файл залезть и каждый вызов функций/методов переписать... а это достаточно большое количество..
Просто может у кого есть частный опыт в этом.
Конечно многого хочу, но очень хочется объяснения "на пальцах" Т.е. нюансы, тонкости, проблемы...
Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015 Откуда: Тамбов
Помог: 17 раз(а)
DeepVarvar пишет:
Даже если их будет тысяча -- за 10 дней сделаешь спокойно.
Что-то как-то очень оптимистично
Тогда по другому спрошу.. То что я делаю новое (модули, библиотеки и т.п.) вот их целесообразно делать "по новому"? Таким образом новое постепенно вытеснит старое.
На сколько вообще оправдано такое смешение стиля написания кода?
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Если ты введешь неймспейсы, ты будешь вынужден перепилить и старое, иначе, как ты будешь неймспйсинг автолоадить? Костылить автолоадер? Ну можно, а смысл тогда?
Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015 Откуда: Тамбов
Помог: 17 раз(а)
В общем делюсь первыми впечатлениями...
Пишу уже то, что нужно делать.. А то я неделю на грабли наступал.
Первым делом открываете свой 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 дней... НЕ РЕАЛЬНО!
У меня был "тестовый забег", просидел почти две недели - не далеко продвинулся... Затягивает время ещё то, что по ходу всплывают какие-то сторонние ошибки..
Ещё столкнулся с такой бедой как название самих классов и их размещение по файлам.. Т.е. нет системы. Например, библиотеки не имеют определяющего префикса, название файлов и классов очень разнятся, в одном файле несколько классов.
В связи с этим Автолоадер получается с костыльцом на начальном этапе, приходится учитывать некоторые особенности...
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
GoDr пишет:
strtolower($file)
Но зачем? Именуй файлы в правильном кейсе.
GoDr пишет:
$path = _PATH_ROOT . '/' . $file . '.php';
Да, положи их куданить еще, чтоб в корне не валялись.
GoDr пишет:
10 дней... НЕ РЕАЛЬНО!
Ну... у меня противоположный опыт. Так еще и в чужом коде. А со своим я бы даже быстрее разобрался.
Хотя, все зависит от качества имеющегося кода, может там полная жопка. Да.
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
GoDr пишет:
где проще добавить \ХХХ\Class, а де всё же через use...
Лучше все же выбрать единый стиль.
GoDr пишет:
Автолоадер получается с костыльцом
Когда уже люди осознают, что автолоадер писать руками в наше время - сам по себе огромный костыль... Есть Composer, он прекрасно справляется с данной задачей.
----- Чем больше узнаю, тем больше я не знаю.
DeepVarvar
Отправлено: 02 Сентября, 2015 - 12:12:04
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
DelphinPRO пишет:
Когда уже люди осознают
Вот не хватит тебе (образно говоря) одного байта -- припомнишь мои слова ))
Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015 Откуда: Тамбов
Помог: 17 раз(а)
DeepVarvar пишет:
Да, положи их куданить еще, чтоб в корне не валялись.
Это я пока "образно" накидал. Предполагается что вызов будет \ХХХ\Class, что уже является путём к файлу
DeepVarvar пишет:
Но зачем? Именуй файлы в правильном кейсе.
Это личное, не люблю в файлах иметь заглавные буквы . И кто-знает как система воспримет совместимость разных регистров..
DeepVarvar пишет:
Хотя, все зависит от качества имеющегося кода, может там полная жопка. Да.
Наследие Джумлы Там не только жопа но и г... остаётся ещё много от чего пока ещё не избавился.. Но осталось чуть-чуть
DelphinPRO пишет:
Есть Composer, он прекрасно справляется с данной задачей.
Да вот сколько пытаюсь освоить, но пока не получается.. Или критическая задача не стояла, или второе.... Теорию понимаю, практику пока не очень могу освоить... А может просто нет в этом необходимости
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.