POPSuL: It Works — php https://popsul.ru:443 Личный блог POPSuL про программирование, линукс и прочую ересь Сб, 27 Апр 2024 09:19:23 GMT Сб, 27 Апр 2024 09:19:23 GMT Simple CMS 2 <![CDATA[ActiveRecord: плюсы и минусы]]> https://popsul.ru:443/blog/2014/09/ActiveRecord-59.html https://popsul.ru:443/blog/2014/09/ActiveRecord-59.html POPSuL Вс, 21 Сент 2014 21:52:00 GMT Воскресенье, 21е сентября, вечер, трезв…

Сегодня мы обсудим плюсы и минусы охуенной хуйни под названием ActiveRecord. Да‐да, это именно хуйня, но она охуенная, и в этом дальше мы убедимся сами.

На написание поста меня сподвигло то, что я увидел то, на что способны некоторые говнокодеры, а именно — 130+ запросов к СУБД для генерации главной страницы.

]]>
<![CDATA[Типографика: Расстановка мягких переносов на PHP]]> https://popsul.ru:443/blog/2013/02/PHP-46.html https://popsul.ru:443/blog/2013/02/PHP-46.html POPSuL Вс, 03 Февр 2013 23:07:00 GMT Очередной воскресный выходной в который нечем заняться…

Сегодня мы поговорим о том, как расставлять мягкие переносы в словах с использованием алгоритма П.Хpистова в модификации Дымченко и Ваpсанофьева. Мягкие переносы — это невидимые символы, которые отображаются только в местах разрыва слов в виде знака дефиса. Думаю, смысл рассатновки переносов объяснять не нужно, для этого достаточно лишь представить книгу без переносов… Под катом читайте более подробную информацию.

]]>
<![CDATA[Кэширование с тегами на примере apc‐storage]]> https://popsul.ru:443/blog/2013/01/apc-storage-43.html https://popsul.ru:443/blog/2013/01/apc-storage-43.html POPSuL Вс, 20 Янв 2013 19:52:00 GMT Очередной вечер…

Начнем разговор о том, для чего вообще нужны теги при кэшировании чего‐либо. Представим ситуацию когда у нас есть большой проект, почти все части приложения кэшируются. Уже наверное кто‐то понял что влечет за собой кэширование всего и вся — все упирается в обновление закэшированных частей, т.е. сброса кэша. Как обычно решается эта проблема:

  1. Никак не решается
  2. Указывают TTL и ждут пока само очистится
  3. Генерируют ключи исходя из каких либо данных (количество записей в БД, к примеру)
  4. Пишут враппер для значений, в который помещается само значение + какая то зависимость, которая при фетчинге проверяется
  5. Не юзают кэш вообще
  6. Используют теги, о чем мы и поговорим.
]]>
<![CDATA[Разработка расширений php: Классы, интерфейсы, методы — Часть 2]]> https://popsul.ru:443/blog/2012/12/php-2-38.html https://popsul.ru:443/blog/2012/12/php-2-38.html POPSuL Вс, 23 Дек 2012 13:39:00 GMT И снова я тут…

Продолжаем разбираться с интерфейсами и методами, и сегодня мы поговорим о реализации интерфейсных методов в классах. Сегодня мы познакомимся с тем, как реализовать на уровне PHP‐расширения код аналогичный этому:

interface IWorld {
    public function say();
}
class Hello implements IWorld {
    public function say() {
        printf("Hello world");
    }
}

Чтож, приступим…

]]>
<![CDATA[Разработка расширений php: Классы, интерфейсы, методы]]> https://popsul.ru:443/blog/2012/12/php-37.html https://popsul.ru:443/blog/2012/12/php-37.html POPSuL Вс, 16 Дек 2012 14:54:00 GMT Наступили выходные, прошел IT.conf_2012

И снова я тут, и снова мы будем изучать недры PHP, и сегодня мы поговорим о классах, интерфейсах, методах классов, финализированных классах и прочих няшках.

]]>
<![CDATA[Разработка расширений php: возвращаемые значения]]> https://popsul.ru:443/blog/2012/12/php-31.html https://popsul.ru:443/blog/2012/12/php-31.html POPSuL Вт, 04 Дек 2012 22:10:00 GMT Продолжаем разбирать расширения PHP на составляющие…

Сегодня мы поговорим о том, как возвращать некие значения из функций. В предыдущих статьях мы уже встречались с макросом RETURN_STRING (), сегодня мы узнаем о других макросах для возвращения результатов с типом, отличном от строки. А в частности, мы разберемся как вернуть из функции string, boolean, long, double, array.

]]>
<![CDATA[Разработка расширений php: аргументы функций]]> https://popsul.ru:443/blog/2012/12/php-30.html https://popsul.ru:443/blog/2012/12/php-30.html POPSuL Пн, 03 Дек 2012 20:59:00 GMT Продолжаем знакомиться с тем, как же все таки писать свои расширения PHP…

Сегодня мы узнаем как сделать функцию которая принимает аргументы, и работает с ними. За основу возьмем тот же код который был в прошлой статье, и немного доработаем его.

]]>
<![CDATA[Разработка расширений php: hello world]]> https://popsul.ru:443/blog/2012/12/php-hello-world-29.html https://popsul.ru:443/blog/2012/12/php-hello-world-29.html POPSuL Вс, 02 Дек 2012 16:26:00 GMT Вступление

По работе мне приходится перерабатывать и улучшать производительность нашего студийного продукта Simple CMS — CMF ориентированная на быструю разработку модулей, админской части этих модулей, а так же быстрого создания конечных продуктов — сайтов. В данном продукте, собственно, как и в любом другом, есть критические места которые работают не так быстро как хотелось бы, и очень хочется их ускорить. Но как ускорять то, что уже просто невозможно ускорить на уровне PHP? Правильно — сделать аналогичные функции и методы в php расширении, а написанный код который работает не так быстро как хотелось бы — оставить для совместимости с теми интерпретаторами, где не будет данного модуля.

Хочу заметить, на данный момент расширение не написано даже на 1%, но я надеюсь что я дойду до того этапа, когда оно будет работать хотя бы с багами.

Далее будет описано как создать hello world за пять минут.

]]>