Delphi for PHP
Скакунов АлександрОпубликовано 18.07.2007 в PHP, Инструменты
Я давно вынашивал идею создания продукта, позволяющего создавать веб-приложения (на PHP) в интерфейсе Delphi. Пусть меня заклюют любители консоли, а это удобно.
Конечно, есть сложности в реализации такой идеи - например, как в едином интерфейсе увязать разработку клиентской и серверной части, но сделано же это как-то в .NET… Почему бы не сделать то же самое для других платформ?
Пробовал Code Charge Studio. Несмотря на то, что проектные файлы можно потом “компилировать” в кучу разных языков (например, PHP и ColdFusion), слишком уж вязко всё там, удалил в тот же день.
В этом году зарелизился Delphi for PHP. Включает кучу всякой вкуснятины:
- ускорение веб-разработки на PHP с помощью Delphi-среды быстрой разработки приложений (RAD) для PHP;
- упрощение PHP-программирования за счет полных Delphi-библиотек PHP for VCL;
- навороченное редактирование и встроенный дебаггер ускоряют процесс отлова багов в коде;
- встроенная среда разработки рационализирует управление кодом и навигацию, так что управление и организация PHP-кода никогда не была такой простой.

Стоит это чудо $99 для учебных заведений и $299 для остальных ($249 - промо-версия). Занимательно, что список реселлеров Украины и Казахстана расположен в разделе Russia.
Инсталляха триальной версии занимает 28 Мб. Написано, что триал длится 14 дней. Люди жалуются, что у них он длился 1 день. Я же обнаружил ссылку на халявный ключ на той же странице, где и закачка триала. Ключ, прешедший на указанное мыло, надо сохранить в home directory (в моём случае на WinXP это C:\Documents and Settings\). Через 14 дней можно попросить другой ключ, разумеется, на другое мыло (рекомендую mailinator.com).
Скачал я и VCL для PHP (библиотека компонентов). Ба, знакомые всё лица:
- adodb
- google maps
- nusoap
- smarty
- xajax
- JSON
- и другие
Ещё куча PHP-файлов, которые реализуют обещанную ОО-функциональность; например в файле buttons.inc.php видим:
class BitBtn extends QWidget
{ …
Интересно, что в файле authors перечислено всего 4 человека. Не менее интересно, что один из них по всем признакам русский: Serguei Dosyukov.
На уровне ощущений проект выглядит многообещающе. Тем не менее, во-первых, надо почитать примеры, т.к. с ходу добавить кнопку на форму и “скомпилить” не получилось, и, во-вторых, из-за кучи мелких глючков могу сказать, что проект ещё сырой.
Позже опишу свои впечатления после более глубокого погружения в продукт.
Понравилась статья? Подпишись на обновления по RSS/E-mail




(1 голосов, средний: 4 из 5)
Мдя, скоро в объявлениях о работе мы увидем:
“Ищицо веб программист-наформукнопочькоперетягивальчег”
Если уже так хочеться быть зависимым от одной библиотеки и от монопольной визуальной среды, а также забыть о том, что такое HTML, CSS, JavaScript - то лучше выбрать АСП.НЭТ, вместе с вижуалстудией. Там хотя бы все более оттестированно и больше компонентов.
Опробовал эту среду в действии… впечаления двоякие.
ИМХО, отстой
помоему бредовая идея какая-то. смысла не видно вообще.
А что за самоцель всё руками делать? Вот я этот пост пишу, и всё равно жму на пимпы добавления тэгов - пока два раза blockquote наберёшь… Конечно, если тулза сродни FrontPage, то спору нет, в аццтой. А если делает всё за тебя и лучше тебя, то “pourquoi pas, почему бы нет” (c) д’Артаньян?
Согласен.
Эх, Василий, Василий… Посмотри, сколько щас предложений для программистов .NET - автоматизация позволяет снизить затраты разработки. Вот имхо основная идея.
Туше?
YA devil
Так, это ж ты сайт создаешь, а пост пишешь
Я понимаю так: если ты хочешь сделать качественный сайт, то на этапе создания скелета страниц, нужно писать все руками. Тогда будет обдуманный скелет (шаблон) страничьки. Т.е. качественный фундамент. Когда ошибки и недочеты находятся изначально в ДНК шаблона - это очень плохо и гнилое проэктирование.
Продукт этот новый, и никто не может сказать, что компоненты хорошо оттестированны и не содержат багов.
К тому же, такой “визуальный” подход к веб программированию помогает сопутствует деградированию программиста. Понимание того, как некоторые вещи работают на самом деле просто теряется. И при возниконовении ситуации, когда прийдеться вернуться в “реальный мир” - это будет сделать очень сложно.
Чем функциональнее и красивее библиотека с которой мы работаем - тем меньше свободы она оставляет программисту. Тем меньше внимания затрачиваеться на оптимизацию кода и качественной реализации элементов защиты сайта.
Автоматизировать свою работу можно и с помощью грамотного проектирования классов, структуры сайтов и шаблонов страниц.
В принципе, этот самый НЕТ поддерживаеться значительно бОльшим количеством людей. И его компоненты, хоть и представляют из себя в большей мере черные ящики, но зато они больше оттестированны.
Мне не нравиться подход АСП.НЕТ при создании сайтов, аля сайт - это тоже самое что и обычное приложение. Это не так. Сайт и приложение - это разные вещи.
Но, я признаю .НЕТ как мощьную и быструю клипалку сайтов на разных языках под ВинХостинг.
Так что не надо извращатся. ПХП, Перл, Питон-код пишем в удобных текстовых редакторах, а .НЕТ приложения в Вижуалстудии.
После “Йа креведго” меня уже ничем не удивишь
По поводу черных ящечгов Delphi4PHP даёт сто очков вперед - в .NET это какие-то проприетарные компоненты, а в тут используются более массовые решения, уж они-то точно оттестированы хорошо:
Так что данный продукт скорее выступает клеем для этих блоков, чем предлагает свои.
Кстати, реализацию конкретного продукта Delphi4PHP я не защищаю: написал же в статье, что он сырой. Защищаю я идею.
Поэтому.
Есть .NET, который доказал жизнеспособность этой темы. Сам .NET не люблю, но основа мне импонирует.
Как-то притянуто за уши. Вот сидит C#-программер, и трясется от страха, что как только проекты на .NET кончатся, ему опять придется в консоль возвращаться. Это ж не командировка. Освоил новый молоток - забиваешь свои гвозди.
Хватанул
Ты когда используешь в PHP функцию sort(), ты точно знаешь, какой именно способ сортировки она реализует? Пузырьковый? Квази-пузырьковый? А если тебе надо квадратно-пузырьковый, что тогда делать - писать свою версию на интерпретируемом PHP? Имхо свобода не в том, что какая-то либа может ВСЁ, а в обилии этих либ. Скажи, какой РНР-фреймворк ты используешь, и я скажу
кто тычего он не умеет.Про деградировавших дот-нетчиков не буду говорить
А вот если бы ты сказал кому-нить из наших Windows-разработчиков, что старая-добрая Delphi - ацтой, т.к. “понимание того, как некоторые вещи работают, на самом деле просто теряется”, и надо писать на чистом Windows API, тебя бы не поняли.
P.S. Сам я прогаю на РНР в удобном текстовом редакторе. Просто присматриваюсь.
Я думаю, что для склейки 6 компонентов такая визуализация не нужна
Идея визуализации LAMP средств мне какраз и не нравиться. дотНЕТ - это нечто родное для Виндов, и для Линуксовых дотНетовская визуализация не подохоит даже как идея.
C# под винды - это очень даже не плохо. Он действительно помогает быстро клепать бизнес-приложения. Но, веб-платформа несколько отличаеться от других платформ. И подход к созданию сайтов должен отличачаться от создания приложений. Я, наверно, очень старомодный
Я не пишу на ПХП. Эх, как сложно в этом мире Перловщику.
Когда появился Делфи - это было действительно прорывом в создании бизнес приложений. Конечно, если мне нужно будет создать приложение, которое являеться упрощенным интерфейсом для доступа к данным - я возьму тот инструмент, который, по моему мнению наиболее подходит для такой задачи. И это скорее всего будет Делфи или Си++ Билдер.
В конце-концов результатом моей работы будет либо екзешник, который не требует интерпретации, либо АктивХ контрол, который другие люди потом смогут заюзать в своих приложениях на любых языках.
Для создания приложений такой подход очень удобен. А вот для создания сайтов, мне кажется что он не подходит. ИМХО
В принципе Delphi for PHP это альтернатива текстовому редактору. И, возможно все таки некоторые вещи будет лучше сделать именно в этой оболочке. Поживем - увидим
хм…. интересная вариация….
только вот вопрос появляеться , а чем этот вариант лучше других, например Zend Studio?
Частично согласен и несогласен с обеими.
Идея добавления кнопочки на форму изменила программирование.
Но сейчас - идея не актуальна!
В 1991 году, когда появилась первая версия Делфи, построение эффективных пользовательских было головной болью. И в этот момент появился Делфи с его “добавать кнопку и запустить”. Он стал настоящим откровением и позволил создавать бизнесс-приложения (по крайней мере интерфейсную часть) гораздо быстрее. Также Делфи стимулировал появления Вижуал Бейскиков и всяких других вижуалстудий.
Но заимствование этой идеи для построения Web-приложение, ИМХО, ложный путь.
). Это когда бизнесс логика пишется прямо в обработчиках.
Дебаггер и хороший редактор это нужные вещи, а вот идея перетаскивания компонентов не катит.
Интерфейсы прекрасно клепаются в HTML (в простом или навороченном редакторе). Обычно у всяких студий возникают серьезные проблемы с написанием бизнесс-логики, потому как оная среда стимулирует писать плохой “спагетти-код” (иногда называемый Делфи-кодом
Мне кажется, что будущее не за РАДами типа Вижуал Студио и Делфи, а за разнообразными генераторами (MyDBO и CodeCharge для PHP, JAG для Java), которые генерируют каркас приложения анализируя базу. Вот эта вещь позволяет действительно удешевить разработку.
А вот для клёпки приложений с использованием библиотеки GTK для ПХП, Перла и Питона такой визуальный редактор бы очень хорошо подошел.
Как раз для линуха был сделан “порт” Делфей, назывался Kylix. Все хотят перетаскивать кнопки
В общем у всех есть зерно истины, пусть прорастает.
Скаффолдинг (если я правильно понял намек) сильно ускоряет разработку бизнес-логики?
Как раз для линуха был сделан “порт” Делфей, назывался Kylix. Все хотят перетаскивать кнопки
Я имел ввиду .нетовский подход к созданию веб-приложений(асп.нет).
А перетаскивание кнопок под Виндов/Линукс приложение - руллит!
Дело в том, что создать интерфейс для обычного приложения намного сложнее чем для сайта.
Используя HTML + расширения (Яваскрипт, ЦСС и т.д.) можно творить чудеса интерфейсного исскуства.
А в приложениях под конкретные ОС таких “чудес” добиться намного сложнее.
А можно ссылочек хороших по теме подкинуть?
Я погуглил немного, нашел вот разве что:
Про веб-фреймворки (накипело)
Представляю, сколько он генерирует мусора… Это к http://www.developers.org.ua/archives/a4/2007/07/22/13-sposobov-ne-delat-otstoynyih-veb-prilozheniy/
В смысле “мусора”? Методов, которые ты никогда не вызовешь? Ну так они до самого вызова вроде память не тратят.
Наверное под мусором имеется ввиду Data-layer (entity classes), DAO-layer, controllers.
Да здраствует спагетти-код!
Господа, программирующие на ПХП, попробуйте MyDBO и убедитесь, что он действительно ускоряет разработку.
В текущем номере КО опубликован мой обзор Delphi for PHP, электронная версия должна в ближайшее время появится на сайте itc.ua и сайте еженедельника ko.itc.ua.
Хочу обратить внимание, что первая Delphi выщла отнюдь не 1991 году, и не с нее был скопировал Визуал Бэйсик, а совсем наоборот. Однако это совсем не помешало Delphi стать на долгое время эталоном для подобных приложений.
В том, что касается Web-разработки, то здесь, конечно, все не столь однозначно, но почти то же самое говорилось и в средине 90-х про создание настольных приложений. Лично я прекрасно помню, как находились люди, высмеивающие Delphi и визуальную разработку вообще как инструмент для деградировавших программистов.
Кстати, популярность подобных продуктов и решений зависит во многом не от того, лучше они или хуже других, а от грамотного маркетинга, обучения, доступной литературы и пр. Возможно, Delphi for PHP не станет очень популярным продуктом совсем не от того, что это не удачный продукт, а по той причине, что CodeGear сейчас обладает совсем не теми возможностями, что Borland более десяти лет назад.
Так или иначе, в мире существует много способов забить гвоздь, но среди молотков не наблюдается доминирования одного-единственного монополиста.
Блин люди а как перенести страницы написанные на делви на сервер что бы там работал а не посоянно ошибки выдовал
Полагаю - сконфигурить.
To Анонімно:
Просто скопировать PHP-файлы не получится - в Delphi for PHP используется своя библиотека классов VCL for PHP.
Надо выбирать “Deploy” или чего-то в этом роде - вместе с проектом на сервер пойдут соответствующие библиотеки классов (не все, а только нужные).
При желании можно все библиотеки скопировать на сервер (это описано в документации).
В случае с нашим провайдером для того, что бы проект заработал на хостинге было сделано следующее:
1. У провайдера небыла установлена переменная output_buffering
Проявлялось сообщением об ошибке в связи с тем что header уже послан
это решили созданием в корне папки проекта файла .htaccess и занесением в него следующих строк:
php_flag output_buffering On
php_value output_buffering 4096
проверять можно по phpinfo()
2. У провайдера не была подключена библиотека в конфигурации php
Провайдер отбрыкивался, типа всё работает - докажи.
Удалось заставить их подключить библиотеку путём предоставления примера, который не работал
По phpinfo это не было видно (вроде бы), а программа говорила что функции не доступны.
1- файл
Проверка ввода числа
Enter your age:
2-й файл (example04.php)
“;
require_once(’test1.php’);
}
elseif ($age === FALSE)
{
echo “Введите число.”;
require_once(’test1.php’);
}
else
{
echo “Привет.”;
echo “В начало.”;
}
?>
Да уж.
Этот сайт слопал код.
Повтор:
1- файл
Проверка ввода числа
Enter your age:
2-й файл (example04.php)
";
require_once('test1.php');
}
elseif ($age === FALSE)
{
echo "Введите число.";
require_once('test1.php');
}
else
{
echo "Привет.";
echo "В начало.”;
}
?>