Выполняю заказ. Не заметил как расписал на PHP кучу классов, кроме тех которые к ТЗ относятся. В ТЗ - база для торговцев, а кроме нее получилась еще и либа. Вот думаю, библиотеку классов стоит выкладывать на паблик?
Там еще разные классы-исключения присутствуют и возможность передачи сообщений по алгосам sigslot ( как в QT ). Просто весь PDF много весит.
aa_dav Описаны классы: String, Integer, Float, Double, Char, Byte, Vector, Hashtable, IOStream, Разные Exceptions, Интерфейс Introspectable, позволяющий конвертировать PHP в бинарный формат и обратно, с ним же - ObjectIOStream, описан механизм Message queue, набор физуальных компонентов для web, наследуются от FDWidget, есть компоненты для работы с сетями и БД, есть механизмы Persistense. С этой либой язык PHP становится строго типизированным. В поставку библиотеки планирую включить phpc - утилиту сборки для php проекта.
osrootd Интересным для меня звучит только "набор физуальных компонентов для web". Как оно дружит с CGI-моделью, какие вообще принципы работы?
osrootd > С этой либой язык PHP становится строго типизированным. Эммм.... Смелое заявление... > В поставку библиотеки планирую включить phpc - утилиту сборки для php проекта. Она и будет еще до запуска программы выискивать и сигнализировать об ошибках строгой типизации, не присущей интепретаторам, таким как PHP?
Ну вот тебе пример: Код (Text): <? //Пример страницы с кнопкой $Page = new FDWebPage(); class MyButton extends FDButton { function __construct () { FD_OBJECT(); connect ( $this, SIGNAL ( "MyBtnClicked"), $this, SLOT ("OnClickNow") ); } public function onClick () { emit ("MyBtnClicked"); } public function OnClickNow () { StandartOutput::writeString ( new String ( "Кнопка нажата") ); } } $ButtonProperties = new FDHashtable (); $ButtonProperties->set ( new String ("title"), new String ( "Моя кнопка" ) ); $ButtonProperties->set ( new String ( "visible"), TRUE ); $Btn = new MyButton (); $Btn->setWidgetProperties ( $ButtonProperties ); $MyContainer = new FDWidgetContainer (); $MyContainer->addWidget ( $Btn ); $Page->setMainWidget ( $MyContainer ); $Page->Start(); ?>
Я и так J2EE программист Просто у заказчика было требование: PHP и только он. Вот чтобы выполнить заказ, я создал такой какой мне нужно язык, создал средство сборки ( какое мне нужно) и после этого написал программу
Код (Text): public function OnClickNow () { StandartOutput::writeString ( new String ( "Кнопка нажата") ); } Это яваскрипт, сабмит формы или аякс?
Ajax, точнее JSON. Там если StandartOutput вызван объектом, который наследуется ТОЛЬКО от FDObject, то строчка просто выводится через printf, если же объект - наследник FDWidget, то вызывается RPC - процедура. Там в итоге так: Struct_ButtonWidget={ on_click=function() { CurrentBrowser.addText ( FDRPCService.getLastMessage() ); } }
phpc пока компилирует просто объекты в бинарные файлы. Они нужны если вы хотите сохранить объект-наследник от FDObject и потом им воспользоваться или передать. Я вот щас думаю описать структуру, где бы хранились процедуры, их результаты. Этакую очередь. Тогда можно создавать бинарники живые, то есть способные к запуску, правда тогда потребуется интерпретатор изменять. А если набор откомпиленых классов еще в зип архив упаковывать вместе с текстовым файлом, где хранилась бы информация о классе, который надо запустить в первую очередь, то на php можно писать полноценные проги, правда интерпретатор измененный должен будет стоять на всех конечных машинах, но это в планах...
Мдаааа... Есть стойкое ощущение, что ключевое слово во всем топике - "Я". Похоже osrootd искренне убежден в шедевральности своего творения и скромненько так пытается объяснить остальным собственную исключительность.
osrootd Не увлекайся) Если есть возможность изменить интерпретатор пхп, то с тем же успехом можно поставить томкат, где все это уже реализовано Я плохо знаю пхп(прогал на пхп4, о более новых версиях вообще понятия не имею) Насчет полезности - твоя система сигнал-слот серверная или клиентская? опиши поподробнее. Я вижу у твоей системы один плюс - наличие клиенский событий и их обработчиков на сервере. Если, коненчо, эта часть доведена до ума и если в пхп ничего подобного еще не включили. Насчет полезности... не уверен, что пхп программисты поймут такую архитектуру, а ентерпрайз-разработчики ни за какие коврижки на пхп не перейдут) Ну, ты исключение наверное.