|
|
|
| Здравствуйте. Интересует такой вопрос: как часто на практике используются механизмы отражений?
Заранее спасибо за ответы. | |
|
|
|
|
|
|
|
для: SOAP
(16.05.2008 в 13:40)
| | Пока не очень часто, так как механизм был введён сравнительно недавно, а окончательный переход на PHP 5 (отказ от поддержки PHP 4) был осуществлен только в январе этого года. | |
|
|
|
|
|
|
|
для: cheops
(16.05.2008 в 14:35)
| | лично вы в каком-нибудь из своих проектов использовали отражения, если да, то в каком контексте. Просто не могу определить насколько серьезно подходить к усвоению данного механизма. Одно дело знать что он за зверь, другое - знать в каких случаях и в каком месте он может пригодиться. :) Спасибо. | |
|
|
|
|
|
|
|
для: SOAP
(16.05.2008 в 15:11)
| | Пока нет, но скорее всего в течении этого года мы будем плавно внедрять его в свои движки - это достаточно заманчивый путь для формирования динамических систем, например, позволяющих, автоматически подцеплять Web-приложения в единую слабосвязанную структуру. Если разработчики PHP в очередной раз нигде не накосячили - можно построить достаточно интересные Web-конструкторы и многие Web-приложения создавать потом мышью. | |
|
|
|
|
|
|
|
для: cheops
(16.05.2008 в 15:38)
| | Спасибо, ваш ответ удовлетворил мое любопытство. | |
|
|
|
|
|
|
|
для: cheops
(16.05.2008 в 15:38)
| | А каким образом тут отражения пригодятся? Можете, хотя бы тезисно, если не сложно, пояснить?
Просто для меня, пока, полезность этого механизма крайне сомнительна. Разве что для ииследования структуры классов. Только опять же непонтяно зачем это может понадобиться. | |
|
|
|
|
|
|
|
для: Axxil
(16.05.2008 в 16:07)
| | Можно создавать достаточно универсальные тесты системы - ведь вы можете запускать каждый из компонентов системы в специальной обвязке тестов и в любой момент можете контролировать как отразились ваши изменения на работоспособности системы в целом. В результате облегчается как командная работа, так и интеграция блоков друг с другом.
Можно здорово уменьшить связанность отдельных блоков, система может не только учитывать состав нового блока, но его версию, доступность нужных ему расширений, давать универсальные рекомендации. | |
|
|
|
|
|
|
|
для: cheops
(16.05.2008 в 16:17)
| | > Можно создавать достаточно универсальные тесты системы
Для этого же есть готовые и неплохо работающие комплексы (типа phpUnit, где сначала практически для каждого класса пишется набор тестов, а уже потом прописывается сам код). Или что-то другое имеется ввиду?
> система может не только учитывать состав нового блока, но его версию, доступность нужных ему расширений, давать универсальные рекомендации.
matrix has you :)
как-то расплывчато и фантастично звучит. | |
|
|
|
|
|
|
|
для: Axxil
(16.05.2008 в 16:26)
| | >как-то расплывчато и фантастично звучит.
но все же интересно :)
меня эта тема тоже начинает интересовать, но пока я в ней круглый ноль
может у кого нить есть пример кода, чтоб посмотреть живьем?
теория звучит красиво, хорошо бы подкрепить ее примером :) | |
|
|
|
|
|
|
|
для: SOAP
(16.05.2008 в 13:40)
| | Простите темного, а что за механизм отражений? | |
|
|
|
|
|
|
|
для: Киналь
(16.05.2008 в 15:19)
| | >Простите темного, а что за механизм отражений?
Механизм отражений предоставляет разработчику возможность исследования как пользовательских, так предопределенных классов, выясняя статус и состав отдельных членов, методов, классов и даже расширений PHP, а также объявления объектов классов и выполнения над ними манипуляций. Кроме этого, отражения позволяют автоматически генерировать документацию иерархии классов по схеме javadoc, применяемой в технологии JAVA.
Из книги ООП на PHP Максима Кузнецова и Игоря Симдянова | |
|
|
|
|
|
|
|
для: Киналь
(16.05.2008 в 15:19)
| | Это набор предопределённых классов PHP, которые позволяют получить самую разнообразную мета-информацию: начиная от версии PHP и загруженных расширений, заканчивая доступных PHP-функций, их параметров и типа каждого из параметров.
PS Достаточно подробное описание этого механизма можно найти в книге "Объектно-ориентированное программирование на PHP". | |
|
|
|
|
|
|
|
для: cheops
(16.05.2008 в 15:32)
| | Спасибо за объяснение.
Хех, толком не ясно, нужно ли ООП в РНР, а тут уже надстройки над ним) | |
|
|
|
|
|
|
|
для: cheops
(16.05.2008 в 15:32)
| | Используя механизм отражений как раз и удобно заниматься автодокументированием программ, отслеживание версий скриптов, изменений и т.д., т.е. создать нормальный механизм (динамически формируемую документацию на комплекс ПО) для сопровождения и тестирования ПО. К чему я и призываю SoftTime предлагая, как положено, прокомментировать их скрипты (см. согл. PEAR или описание ф-ций getDocComment() и т.д. классов Reflection )
В плане обучения это будет так же полезно для читателей их книг. | |
|
|
|
|
|
|
|
для: vitali
(16.05.2008 в 16:00)
| | Мы обязательно воспользуемся этим механизмом (и будем отражать его в будущих изданиях книг более предметно и на конкретных примерах, которые могут помочь в реальной практике). Однако, не считаем, что ориентироваться на него всецело следует раньше конца этого года. Во-первых, переход на PHP 5 ещё кончательно не оформлен, во-вторых к механизму ООП имеются ещё притензии, в третих не совсем ещё ясно как это отразится на производительности (пока она не сильно радует).
PS А так совершенно верно, что в Java имеется положительного, так это механизм документирования и тестов, которые другим системам просто не снились - всё ж при помощи отражений достаточно трудоёмко тестовую обвязку писать. Да и документации пока так себе выходит - тот же PEAR тому подтверждение. | |
|
|
|