Функции pack и unpack. Работа с бинарными данными.


Вероятно большинство веб-программистов никогда не работали напрямую с бинарными данными из php.

И так получилось не только потому, что, чаще всего бинарную обработку берут на себя разнообразные расширения или библиотеки. Часто это связано ещё и с тем, что информации в интернете не очень много, а та что есть — сложна для восприятия и далека от потребностей конкретного разработчика.

»

Сокеты — введение

Ещё один вид транспорта в unix системах, про который я пока не успел ничего рассказать - это сокеты.

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

»

Принимаем аргументы из командной строки

Вот как обычно бывает: Нам нужно написать малюсенький консольный скрипт бекапа, который, может запускаться из крона, и при этом скрипт должен принимать параметры для соединения с базой данных.

»

Консольные программы для работы с ipc функциями

Наверняка после обзора очередей, сигналов, общей памяти и семафоров, появляется особая нужда в быстрых системных инструментах.

Так как эти функции из php только транслируются на уровень ядра системы, поэтому многие инструменты уже разработаны и служат системным программистам верой и правдой уже много лет :-)

»

Демоны — очереди сообщений

Всем привет!

В предыдущих выпусках мы уже узнали как можно создавать простых демонов, как правильно посылать демонам сигналы, и эти же самые, принятые сигналы, корректно обрабатывать. Теперь мы вплотную подошли к моменту, когда наш демон должен научиться общаться с другими программами, или сам с собой, но в разных экземплярах.

В мире unix, существует немыслимое множество способов передать команду или сообщение от демона к веб-скрипту и наборот. Но сейчас я хочу рассказать только про очереди сообщений — «System V IPC Messages Queues».

»

Демоны — Основы

Сегодня я расскажу один удивительный факт:

*Большинство веб-разработчиков ни разу в своей жизни не писали демонов. И не то что бы им это было не нужно, они просто никогда не задумывались о том что бы написать демона. *

»

Jelly — Пишем сложные запросы

Все разработчики, рано или поздно, начинают понимать что стандартными средствами ORM библиотеки невозможно реализовать сложные и удобные запросы.

То тут, мы не знаем как написать простейших запрос для подсчёта суммы, без вынимания всех значений, то там, мы не можем составить нетривиальное условие.

»

Модуль для простых миграций

В [предыдущем посте][1] я рассказывал о модулях миграций для Коханы 3. К сожалению ни один из модулей мне не понравился или по каким-то причинам не подошёл.

Сейчас же, я хочу представить свой форк модуля для миграций. Он основан на [kohana-3-migrations][2]. И получился сам по себе лёгкий и лишённый нескольких детских болезней своего родителя.

Итак, [встречайте][3] :) (он пока без нового названия и в экспериментальной ветке)

Вкратце, что он умеет:

  • Миграция сохраняется в виде обычной SQL-инструкции.
  • Инструкции UP и DOWN записываются в одном файле
  • В том же файле указывается описание миграции
  • Можно просмотреть список всех миграций
  • Накатывание и откат миграций теперь происходит ровно на один шаг
  • Появилось ключевое слово all для метода UP
»

Миграции в Kohana 3.0.*

Недавно восторженные апологеты «yii» опубликовали новость о том что теперь их [фреймворк поддерживает миграции к базе данных][1]. Имея опыт работы с миграциями в doctrine, я давно уже задумывался об использовании миграций в кохане. И решил что настал момент самостоятельно во всём разобраться.

»