Формы – в Symfony2 один из самых мощных инструментов, они представляют множество возможностей. Много секретов работы с Symfony2 описано в Книге рецетов. Хочу представить вам перевод одного рецепта работы с формами, в Symfony 2 – использование дата трансформеров.
Часто возникает необходимость преобразовывать данные, введенные пользователем в форму в другой формат для использования в вашей программе. Можно легко сделать это вручную в контроллере, но как поступить, если вы хотите использовать эту форму в разных местах? Скажем, у вас есть объект «Task» (задачи) связанный соотношением кодин-к-одному с объектом «Issue» (проблемы), для каждой «Task» моможет быть указана опционально «Issue», которую она решает. Если в форму редактирования задач «Task», добавить выпадающий список из проблем «Issue», то нам будет очень тяжело в нем ориентироваться. Можна добавить текстовое поле вместо, выпадающего списка и вводить просто номер «Issue».
Вы можете попробовать сделать преобразование в контроллере, но это не самое лучшая идея. Было бы намного лучше, если бы номер «Issue» автоматически преобразовался объект «Issue». В этом случае в игру вступают «Data Transformers» (трансформеры данных).
Читать полностью »
Метка «PHP» - 55
Использование Data Transformers в Symfony2
2012-09-27 в 13:38, admin, рубрики: php, symfony, symfony2, переводы, Песочница, метки: PHP, symfony2Переопределение предка (dirty hack)
2012-09-27 в 11:31, admin, рубрики: dirty hack, hook, php, ооп, метки: dirty hack, hook, PHP, ооп Иногда очень хочется переопределить поведение класса родителя, не меняя его код.
К примеру поменять место хранения шаблонов из файлов в базу… или добавить кэширование…
или заменить в ORM удаление записей на пометку их как удаленные…
Да мало ли что мы можем пожелать изменить…
Если каждый программист будет лезть в ядро фреймворка или просто в чужой код, то это будет каша.
У этой задачи есть множество решений. Я хочу предложить то, которое мне нравится больше всего.
Решение основано на __autoload() а точнее на spl_autoload_register.
Читать полностью »
Определение части речи слова на PHP одной функцией
2012-09-26 в 16:59, admin, рубрики: php, Алгоритмы, метки: PHP, АлгоритмыПрочитав пост http://habrahabr.ru/qa/2410/, я написал функцию, которая определяет из строки слов их части речи. Определение, конечно не 100%, но можно легко дорабатывать.
Функция возвращает массив значений групп:
- 1. прилагательное
- 2. причастие
- 3. глагол
- 4. существительное
Пример вызова функции:
print_r(chastrechiRUS('В небе летит красивый сверкающий самолёт'));
Результат работы функции (массив):
Array ( [0] => 4 [1] => 4 [2] => 3 [3] => 1 [4] => 2 [5] => 4 )
Хранение зон named в MySQL
2012-09-26 в 16:03, admin, рубрики: DNS, mysql, named, php, метки: mysql, named, PHP Давно порывался найти какое-либо бесплатное и толковое решение для хранения доменных зон в базе данных, и управлять всем этим с лёгкостью. В интернете безумное множество решений, начиная от бесплатных, заканчивая платными и дорогими. Но, к сожалению ни одно из них не оправдало моих надежд. Какие-то продукты были кривые и не управляемые, какие-то не могли использоваться для чего-либо ещё. В конечном итоге нашёл время и написал свой скрипт, который грузит данные о домене и записывает их в фай для named.
Читать полностью »
Вступление
Система, разработанная мною, имеет схожую структуру с фреймворком Symfony. Изначально была написана как базис для любой последующей разработки.
Когда-то прочитал мнение, которое меня развеселило и имело оно примерно такой смысл: «Компьютеры стали мощнее и мы начали компенсировать это фреймворками». Выходом из этой ситуации, по-моему, было написание такого «костяка», который позволит с легкость организовать маршрутизацию и модуляцию сайта.
Хочу сказать, что это не является альтернативой Symfony framework, а лишь моим взглядом на решение мелких задач.
Читать полностью »
ObjectScript — новый язык программирования
2012-09-26 в 8:21, admin, рубрики: javascript, Lua, ObjectScript, php, Песочница, Программирование, метки: javascript, lua, ObjectScript, PHPСколько же существует всяких языков программирования, еще один? Ну можно и так сказать, а можно сказать и по другому: я программист и пишу программы на разных языках программирования для разных задач. В одних языках есть одни плюсы, в других — другие. Вот я и решил предложить свой универсальный язык программирования для множества задач.
ObjectScript — новый объектно-ориентированный язык программирования с открытым исходным кодом. Сами исходники занимают 459 Кб (парсер, компилятор и виртуальная машина) и находятся в двух файлах sourceobjectscript.h
и sourceobjectscript.cpp
. Скачать их можно по прямой ссылке тут. ObjectScript — очень легкий, предназначен для вставки в приложение на C++.
ObjectScript сочетает в себе возможности таких языков, как JavaScript, Lua и PHP. Например, синтаксис в основном взят из JavaScript, множественное присваивание — из Lua, работа со свойствами через перегружаемые методы — из PHP.
Кроме унификации нескольких существующих языков программирования, ObjectScript добавляет также и свои уникальные и полезные фишки.Читать полностью »
Некто Ben Scholzen начал прием предзаказов на плюшевые игрушки ZF ElePHPant.
Читать полностью »
Необычное переполнение жесткого диска или как удалить миллионы файлов из одной папки
2012-09-25 в 12:43, admin, рубрики: bash, ispmanager, mysql, php, системное администрирование, метки: bash, c++, ispmanager, mysql, PHPПредисловие
Скорей всего, матерым системным администраторам статья будет не очень интересна. В первую очередь она ориентирована на новичков, а также на людей, которые столкнулись с подобной проблемой — необходимостью удалить огромное количество файлов из одной папки в ОС Linux (Debian в моем случае), а также с закончившимся местом на диске, когда df -h выдает что почти 30% свободно.
Читать полностью »
WorkApp — ServiceDesk, HelpDesk и OpenSource
2012-09-24 в 17:05, admin, рубрики: helpdesk, mysql, open source, opensource, php, service desk, бизнес, Веб-разработка, дела, работа, метки: helpdesk, mysql, opensource, PHP, service desk, бизнес, дела, работа WorkApp — система, управляющая ресурсами и процессами внутри компании. Это web-приложение, доступ к которому осуществляется через браузер.
Ресурсы — то, с чем работает компания: клиенты, сотрудники, контакты, документы, оборудование, с котором приходится работать, и прочее.
Процесс — работа, направленная на получение результата. Часто процесс — это задача сотруднику или целому отделу. В системе можно описывать повторяющиеся процессы — бизнес-процессы (workflow).
Основной идеей проекта является привязка всех процессов к объекту. Другим словами, есть клиент Иванов и все работы (задачи), документы, письма (email) должны быть связаны с ним, чтобы в любой момент времени при необходимости любой сотрудник компании (в зависимости от привилегий, которыми он обладает) мог получить все необходимые ему данные.
WorkApp — модульная система. Любая возможность (функционал) могут быть представлены в виде отдельного модуля, который может взаимодействовать с другими модулями системы.
Графовая база данных Neo4j в PHP
2012-09-24 в 10:03, admin, рубрики: mongodb, neo4j, nosql, php, метки: mongodb, neo4j, nosql, PHPВ последнее время я все чаще слышу о NoSQL и о графовых базах данных в частности. Но воспользовавшись хабропоиском с удивлением обнаружил, что статей на эту тему не так и много, а по запросу «Neo4j», так вообще 4 результата, где косвенно упоминается это название в тексте статей.
Что такое Neo4j?
Neo4j — это высокопроизводительная, NoSQL база данных основанная на принципе графов. В ней нет такого понятия как таблицы со строго заданными полями, она оперирует гибкой структурой в виде нод и связей между ними.
Как я докатился до этого?
Уже более года я не использовал в своих проектах SQL, с того времени, как попробовал документо-ориентированную СУБД "MongoDB". После MySQL моей радости не было предела, как все просто и удобно можно делать в MongoDB. За год я переписал тройку CMS, использующих основные фишки Mongo c её документами, и с десяток сайтов работающих на их основе. Всё было хорошо, и я уже начал забывать, что такое писать запросы в полсотни строк на каждое действие с БД и все бы ничего пока на мою голову не свалился проект с кучей отношений, которые ну никак не укладывались в документы. Возвращаться к SQL очень не хотелось, и пару дней я потратил чисто на поиск NoSQL решения, позволяющего делать гибкие связи — на графовые СУБД. И по ряду причин мой выбор остановился на Neo4j, одна из главных причин — это то, что мой движок был написан на PHP, а для неё был написан хороший драйвер "Neo4jPHP", который охватывает почти 100% REST-интерфейса, предоставляющегося сервером Noe4j.Читать полностью »