Pull to refresh
109
0
Олег @Olegas

Fullstack-разработчик

Send message
1) спасибо
2) никак =) в текущей реализации не требовалось, задумаюсь над красивым решением, спасибо.
Можно ссылочку?
Там есть проверка на корректность передаваемого колбэка?
Я в курсе что есть реализации события в различный фреймворках.
В данном примере демонстрируется не создание очередного обработчкиа событий а в большей степени пример использования Reflection для более строго постановки хэндлеров события и в целом более строгой реализации.

В тех сорцах Symfony, что вы показали, я проверки не нашел.
В моем примере тоже можно навесить несколько разных обработчиков. Это видно в коде установки хука, но, к сожалению, не видно при самом навешивании хука. В C# используется перегруженный +=, в PHP пока такое реализовать не получается…

А в Kohana аргументы к событиям как-то используются?
Оказалось, причина в установленном на хостинге eAccelerator. После его отключения все встало на свои места.
PHPShop (PHPShop CMS 2.2.2.2 Free version) настолько убог (помимо FCKEditor и Dumper там целых 3 своих класса) и крив в плане ООП (классы там используются для хранения функций) что это не тот продукт на котором надо демонстрировать Reflector.

Предложите другой достойный бесплатный незаобфускейченный ООП-проект — сделаю HowTo.
Да это все ясно
Но сама функция для меня черный ящик, известно лишь имя и количество аргументов.

Вызов функции без какого либо окружения и с непонятно какими аргументами (их значениями) не дает никаких гарантий получения в ответ результата нужного типа.

А раз нет гарантии получить достоверный результат не стоит и пользоваться такой придротной схемой определения возвращаемого значения.
Теряется суть. Задумывалось как отдельный скрипт который можно загрузить в абсолютно неизвестный проект и с помощью него посмотреть имеющиеся классы, их структуру и иерархию.
Как получить количество параметров и их дефолтные значения я знаю. Как вызвать функцию не передав ей ни одного параметра? Какие параметры передать чтобы функция вернула результат в не допустим null или не кинула Exception?
А с аргументами как быть?
Ну и еще демонстрация возможностей Reflection API и Tokenizer
Изучение структуры классов проекта например. При решенной проблеме докблоков это практичечски получается phpDocumentor lite =)

Плюс в том что данные обновляются на ходу, по мере обновления классов. Не надо перегенерировать ничего. Разве только классы переиндексировать иногда.

Когда я изучал .NET и SharePoint мне аналогичная утилита очень помогла (Red Gate's .NET Reflector) в изучении внутренних механизмов классов SharePoint
Да, планирую уменьшить Ext, спасибо
Нет. get_declared_classes() показывает объявленные в данный момент классы. Все равно надо пробегаться по исходникам как минимум подгружать все найденное.

Эта функция, естественно, не знает о классах написанных но не загруженных.
Выложил. См. выше. + на самой демо-странице ссылка.
Строкой выше ответил почему так.
Пардон, перепутал.
Там задумана отрисовка докблоков, но на текущем хостинге она почему-то не работает, ReflectionClass::getDocComment возвращает false =(

На моей машине с PHP5.2.4 работает, а на хостинге с 5.2.9 — нет. Исследую почему так…
Там должно дерево отрисовываться как на скриншоте. Какой у вас браузер?
А что делать с тем, что у мемкэша ограничен размер хранимых данных в одной записи?

И чем это лучше чем кэш MySQL… Хотя это уже спрашивали выше много раз.
Да, прозрачность тоже. Примерно так:
sIFR.replaceElement(named({sSelector:"#header h1", sFlashSrc:"/fo/css/europe.swf", sColor:"#FFFFFF", sWmode:«transparent»}));

sWmode:«transparent» — прозрачность.
а через такую конструкцию
sBgColor:"#FFFFFF"
можно управлять цветом бэкграунда, если он конечно не прозрачный =)

Information

Rating
Does not participate
Location
Россия
Works in
Date of birth
Registered
Activity