Модераторы: IZ@TOP, skyboy, SamDark, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> модификация php кода, php скриптом, см. тему :) 
:(
    Опции темы
NFL
  Дата 5.2.2015, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Итак, суть. Есть некий продукт, MVC, много кода, много модулей, и т.д.

Встала необходимость реализовать механизм обновления ядра и модулей.

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

Задача такова:

Положим, есть что то типа:

Код

<?php
class IndexController {
  public function indexAction(){/*...*/}
  /**
    * @custom
    */
  public function fooAction() {/*...*/}
  public function barAction() {/*...*/}
}


На скрипт обновления заходит php-файл:

Код

class IndexController {
  public function indexAction(){/*.!!!..*/}
  public function fooAction() {/*.!!!..*/}
  public function barAction() {/*.!!!..*/}
}


Задача в том, чтобы обновить (перезаписать) методы indexAction() и barAction(), но проигнорировать fooAction(), т.к. есть аннотация @custom.


Узнать, есть ли аннотация - не проблема. А вот перезаписать метод - не находил подобного в Reflection API. Есть ли что то подобное? Подскажите, знаюшие люди  smile 
PM MAIL   Вверх
baldina
Дата 6.2.2015, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 1
Всего: 101



1. зачем reflection?
2. идея такого обновления не очень. custom может перестать работать после обновления.
3. зачем в модуле изменять класс, если можно создать новый класс, используя стандартный в качестве базового?

Добавлено через 1 минуту и 33 секунды
Цитата(baldina @  6.2.2015,  00:11 Найти цитируемый пост)
1. зачем reflection?

я к тому, что если в исходнике можно найти аннотацию, перезаписать код тоже не проблема
PM MAIL   Вверх
NFL
Дата 7.2.2015, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



1. удобно же
2. это уже внутренняя головная боль) сделать так чтоб не рухнуло 
3. ограничения фреймворка, проект большой, написан на ЗФ1, и переписывать на том же Yii нет ни малейшего желания, да и времени не ахти(
Насколько я знаю ЗФ, там нельзя адекватно заменить один контроллер другим, и вынести действия в файлы (как yii 1.x) тоже нельзя (гугль молчит на эту тему)
PM MAIL   Вверх
Google
  Дата 27.5.2019, 08:32 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.1480 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.