Комментарии 36
спасибо, очень интересно.
только вот не понял, почему в див «doc» ничего не подгружается?
делал нечто подобное для бэкенда своей системы на codeigniter + jquery (управления контроллерами, моделями и представлениями).
только вот не понял, почему в див «doc» ничего не подгружается?
делал нечто подобное для бэкенда своей системы на codeigniter + jquery (управления контроллерами, моделями и представлениями).
+2
Там должно дерево отрисовываться как на скриншоте. Какой у вас браузер?
+1
дерево отрисовалось, проверял в ff 3.0.11 и ie8 :)
ради интереса даже в фаирбаге глянул — при выборе элемента из дерева идет пост запрос на phpreflector.elifantiev.ru/reflector.php, а в ответ ничего не приходит…
ради интереса даже в фаирбаге глянул — при выборе элемента из дерева идет пост запрос на phpreflector.elifantiev.ru/reflector.php, а в ответ ничего не приходит…
0
Пардон, перепутал.
Там задумана отрисовка докблоков, но на текущем хостинге она почему-то не работает, ReflectionClass::getDocComment возвращает false =(
На моей машине с PHP5.2.4 работает, а на хостинге с 5.2.9 — нет. Исследую почему так…
Там задумана отрисовка докблоков, но на текущем хостинге она почему-то не работает, ReflectionClass::getDocComment возвращает false =(
На моей машине с PHP5.2.4 работает, а на хостинге с 5.2.9 — нет. Исследую почему так…
-1
Для выглядящих таким образов блоков у меня отображается нормально.
...
/**
* @category ZFDebug
* @package ZFDebug_Controller
* @subpackage Plugins
* @copyright Copyright © 2008-2009 ZF Debug Bar Team (zfdebug.googlecode.com)
* @license code.google.com/p/zfdebug/wiki/License New BSD License
*/
class ZFDebug_Controller_Plugin_Debug_Plugin_Reflection extends Zend_Controller_Plugin_Abstract implements ZFDebug_Controller_Plugin_Debug_Plugin_Interface
...
0
у меня тоже в «док» пусто. Firefox 3 0 11 в Хроме тоже пусто, только при.
0
следующий шаг — онлайн редактор для php! :)
+1
У нас есть некоторые наработки по этому вопросу. Единственное с чем пока столкнулись инденты по Tab и «умный» фолдинг.
0
Latency будет гигантским(если например будет включен хотя бы highlight + autocomplete) даже для человека, который пользуется ide. А уж для юзеров vim, которые вообще командами «пишут»…
Вся надежда только на технологии, которые встраиваются на клиенте(beyond active x), то тогда нафига нам браузер :-)
Вся надежда только на технологии, которые встраиваются на клиенте(beyond active x), то тогда нафига нам браузер :-)
+2
Выложили бы исходники, чего уж там.
0
Выложил. См. выше. + на самой демо-странице ссылка.
-1
Ммм… может стоит задействовать get_declared_classes()?
+1
Нет. get_declared_classes() показывает объявленные в данный момент классы. Все равно надо пробегаться по исходникам как минимум подгружать все найденное.
Эта функция, естественно, не знает о классах написанных но не загруженных.
Эта функция, естественно, не знает о классах написанных но не загруженных.
+1
Подключил бы Ext с CacheFly, выкинув все лишнее.
+2
А думали над областью приминения?
+2
Изучение структуры классов проекта например. При решенной проблеме докблоков это практичечски получается phpDocumentor lite =)
Плюс в том что данные обновляются на ходу, по мере обновления классов. Не надо перегенерировать ничего. Разве только классы переиндексировать иногда.
Когда я изучал .NET и SharePoint мне аналогичная утилита очень помогла (Red Gate's .NET Reflector) в изучении внутренних механизмов классов SharePoint
Плюс в том что данные обновляются на ходу, по мере обновления классов. Не надо перегенерировать ничего. Разве только классы переиндексировать иногда.
Когда я изучал .NET и SharePoint мне аналогичная утилита очень помогла (Red Gate's .NET Reflector) в изучении внутренних механизмов классов SharePoint
-1
Напиши тогда how to как его прицепить к тому же PHPShop…
-1
PHPShop (PHPShop CMS 2.2.2.2 Free version) настолько убог (помимо FCKEditor и Dumper там целых 3 своих класса) и крив в плане ООП (классы там используются для хранения функций) что это не тот продукт на котором надо демонстрировать Reflector.
Предложите другой достойный бесплатный незаобфускейченный ООП-проект — сделаю HowTo.
Предложите другой достойный бесплатный незаобфускейченный ООП-проект — сделаю HowTo.
0
Ну и еще демонстрация возможностей Reflection API и Tokenizer
-1
В исходниках отсутствует Ext (для уменьшения объема).
нужны ли какие-то дополнительные компоненты или хватит Ext Core?
0
Что-то уж очень понравилась идея с Reflection и мониторингом за загруженными классами и т. п. в общем написал плагин к ZFDebug:
Еще скриншотов можно посмотреть тут: ZFDebug Reflection Plugin.
Сейчас плагин показывает все загруженные расширения php, их директивы из php.ini, константы функции и классы в виде дерева (jQuery), для функций и классов так же используется Reflection; Так же отображаются все объявленные интерфейсы объектов, классы и функции ( пользовательские отображены отдельно ). Если любителея ZF и ZFDebug будет интересно — то прикручу еще кеширование и выложу в виде релиза.
Еще скриншотов можно посмотреть тут: ZFDebug Reflection Plugin.
Сейчас плагин показывает все загруженные расширения php, их директивы из php.ini, константы функции и классы в виде дерева (jQuery), для функций и классов так же используется Reflection; Так же отображаются все объявленные интерфейсы объектов, классы и функции ( пользовательские отображены отдельно ). Если любителея ZF и ZFDebug будет интересно — то прикручу еще кеширование и выложу в виде релиза.
+1
На текущее состояние не вижу практического применения
Еще можно было тип возращаемого значения вывести если мне память не изменяет то примерно так
$func = new ReflectionMethod(«MyClass», «somemethod»);
gettype($func->invoke());
Еще можно было тип возращаемого значения вывести если мне память не изменяет то примерно так
$func = new ReflectionMethod(«MyClass», «somemethod»);
gettype($func->invoke());
0
А с аргументами как быть?
-1
сам не пробовал но мануал говорит
public ReflectionParameter[] getParameters()
public ReflectionParameter[] getParameters()
+1
Как получить количество параметров и их дефолтные значения я знаю. Как вызвать функцию не передав ей ни одного параметра? Какие параметры передать чтобы функция вернула результат в не допустим null или не кинула Exception?
-1
Можете поставить условие public int getNumberOfParameters()
А если возникнут еще вопросы то можно почитать здеся www.php.net/manual/ru/language.oop5.reflection.php ))
А если возникнут еще вопросы то можно почитать здеся www.php.net/manual/ru/language.oop5.reflection.php ))
0
Да это все ясно
Но сама функция для меня черный ящик, известно лишь имя и количество аргументов.
Вызов функции без какого либо окружения и с непонятно какими аргументами (их значениями) не дает никаких гарантий получения в ответ результата нужного типа.
А раз нет гарантии получить достоверный результат не стоит и пользоваться такой придротной схемой определения возвращаемого значения.
Но сама функция для меня черный ящик, известно лишь имя и количество аргументов.
Вызов функции без какого либо окружения и с непонятно какими аргументами (их значениями) не дает никаких гарантий получения в ответ результата нужного типа.
А раз нет гарантии получить достоверный результат не стоит и пользоваться такой придротной схемой определения возвращаемого значения.
0
getParameters() не прокатывает там где используется func_get_arg() и т. п.
0
В коде опечатка:
для индексации нужно вызвать reflector.php?indexClasses
для индексации нужно вызвать reflector.php?indexClasses
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Публикации
Изменить настройки темы
Визуальный PHP-рефлектор