По результатам опроса в первой статье, решено было сделать обзор реализации расширения. К этому моменту в угоду существующим IDE немного изменился синтаксис, который, пожалуй, был наиболее обсуждаемым моментом.
Это не еще-одна-статья-о-hello-world-расширении, т.к. желающим разобраться в основах легко найти массу материалов как на самом Хабре, так и в русскоязычном RTFG.
Статья о предпосылках, реализации и подводнях камнях. В ней будет мало PHP, в основном C.
Читать полностью »
Метка «decorators»
Декораторы в PHP. Реализация расширения
2013-05-27 в 8:08, admin, рубрики: decorators, extension, php, zend engine, метки: c++, decorators, extension, PHP, zend engineДекораторы в PHP
2013-05-24 в 11:22, admin, рубрики: decorators, extension, php, декораторы, метки: decorators, extension, PHP, декораторы
Решил поделиться своим видением и наработками по реализации python-style декораторов в PHP.
В качестве завлекалочки небольшой пример использования на изображении справа. Выводит (после реализации логики самих декораторов):
Log: calling b() int(42)
Реализация выполнена в виде C расширения и не требует пересборки самого PHP. Но не заведется на хостингах, где нельзя загрузить свою so'шку.
На данный момент код находится в стадии беты (весь нужный функционал написан, но баги и утечки памяти наверняка есть :) ). Так что as is. Ну а если есть желание помочь в развитии, то буду рад принять коммиты на github.
Читать полностью »
Добавляем чуть больше рефлексии: декораторы
2013-04-25 в 20:00, admin, рубрики: decorators, python, декораторы, рефлексия, метки: decorators, python, декораторы, рефлексияПоследнее время приходится довольно много работать с Python. Решая одну из текущих задач, возникла необходимость внутри функции-декоратора проверить задекорирован ли декорируемый метод другим декоратором. К сожалению, стандартные средства рефлексии языка не позволяют это сделать. Точнее, используя, например, модуль inspect из стандартной библиотеки это сделать можно, но уж больно не нравился такой подход.
Под катом свой метод решения задачи, вылившийся в небольшую библиотеку, доступную для общего пользования.
Читать полностью »
Чуть-чуть «извращений» над моделями django
2012-03-20 в 2:17, admin, рубрики: decorators, django, models, python, метки: decorators, Django, models, pythonЛень двигатель прогресса
Иногда, создавая модели в django, я себя начинаю чувствовать мартышкой. Постоянно создаю атрибут enable, который принимает по умолчанию то значение True, то False. Меняю менеджер objects на свой простой EnableManager. А хочется иметь механизм, который эти монотонные операции делал за меня. Раз хочется, то можно сделать.