Буквально вчера столкнулся с ситуацией, что не смог найти рабочих классов/модулей по сжатию/распаковке строк алгоритмом LZW. Точнее сказать: jsCompress-jsDecompress — работает. PhpCompress-PhpDecompress — работает. А вот jsCompress-PhpDecompress либо возвращает вообще что-то неведомое, либо пустую строку. Честно сказать не знаю, может такой проблемы с ANSI и нет, но вот с utf-8 она очень явно проявляется. Потратив несколько часов на решение проблемы я решил опубликовать готовые к работе функции на хабре. Читать полностью »
Рубрика «php» - 232
LZW-сжатие строк на javascript и распаковка средствами PHP
2012-09-28 в 10:11, admin, рубрики: javascript, lzw, php, метки: javascript, lzw, PHPИспользование Data Transformers в Symfony2
2012-09-27 в 13:38, admin, рубрики: php, symfony, symfony2, переводы, Песочница, метки: PHP, symfony2 Формы – в Symfony2 один из самых мощных инструментов, они представляют множество возможностей. Много секретов работы с Symfony2 описано в Книге рецетов. Хочу представить вам перевод одного рецепта работы с формами, в Symfony 2 – использование дата трансформеров.
Часто возникает необходимость преобразовывать данные, введенные пользователем в форму в другой формат для использования в вашей программе. Можно легко сделать это вручную в контроллере, но как поступить, если вы хотите использовать эту форму в разных местах? Скажем, у вас есть объект «Task» (задачи) связанный соотношением кодин-к-одному с объектом «Issue» (проблемы), для каждой «Task» моможет быть указана опционально «Issue», которую она решает. Если в форму редактирования задач «Task», добавить выпадающий список из проблем «Issue», то нам будет очень тяжело в нем ориентироваться. Можна добавить текстовое поле вместо, выпадающего списка и вводить просто номер «Issue».
Вы можете попробовать сделать преобразование в контроллере, но это не самое лучшая идея. Было бы намного лучше, если бы номер «Issue» автоматически преобразовался объект «Issue». В этом случае в игру вступают «Data Transformers» (трансформеры данных).
Читать полностью »
Переопределение предка (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.
Читать полностью »
Импорт в Prestashop: подводные камни
2012-09-25 в 12:50, admin, рубрики: e-commerce, php, prestashop, Веб-разработка, импорт товаров, интернет-магазин, электронная коммерция, метки: e-commerce, import, prestashop, импорт товаров, интернет-магазин Привет!
Недавно мне довелось писать парсер для PrestaShop. Хочу теперь поделиться своим мимолетным опытом знакомства с этой платформой. К сожалению, не очень приятным. Нет, я ничего против нее не имею. Вполне себе симпатичное e-commerce решение, удобное для пользователей. Можно сказать, приятное в любом отношении. Кроме отношения к разработчикам.Читать полностью »
Необычное переполнение жесткого диска или как удалить миллионы файлов из одной папки
2012-09-25 в 12:43, admin, рубрики: bash, ispmanager, mysql, php, системное администрирование, метки: bash, c++, ispmanager, mysql, PHPПредисловие
Скорей всего, матерым системным администраторам статья будет не очень интересна. В первую очередь она ориентирована на новичков, а также на людей, которые столкнулись с подобной проблемой — необходимостью удалить огромное количество файлов из одной папки в ОС Linux (Debian в моем случае), а также с закончившимся местом на диске, когда df -h выдает что почти 30% свободно.
Читать полностью »
