Имеем базу данных: В базе данных находятся таблицы, причём на каждый день таблица своя. Имена таблиц имеют вид table_2015_08_21, table_2015_08_22, etc...
В таблицу, в реальном времени, валится непрерывный поток данных. Каждая таблица имеет первичный уникальный ключ id. На колонке автоинкремент. В пределах суток id естественно, всегда уникален.
Имеем некий скрипт: Задача скрипта, вытаскивать свежеупавшие в таблицу данные раз в 15 секунд. Данные затем идут на обработку куда-либо. Алгоритм извелечения данных работает следующим образом:
Задача: Реализовать переключение скрипта на новую таблицу, в полночь (при смене дня), без потерь данных. Задача нетривиальная, и простая лишь на первый взгляд . Я вот голову сломал.
Посмотрел таблицу. Да, динамическая типизация - это очень удобно и интуитивно понятно...
(array() == null) = true - вот это удивило
("php" == 0) = true, но ("php" === 0) = false - а это какбе символизирует суть языка для непосвящённых, да . (При взгляде со стороны - php это ноль, но при ближайшем рассмотрении - уже не ноль)
Я вот два с половиной года в одиночку писал веб, для одной известной онлайн-игры. И в данный момент - края не видно даже на горизонте хоть веб уже и разросся до 4 серверов.
И меня до недавнего времени мучил тот-же самый вопрос, касательно коллективной разработки. Однако, после того, как я подписал документ об отчуждении прав, получил официальную работу и зарплату, а также NDA и вполне реальную ответственность - проблема была снята, так как аналогичные документы были подписаны и моими новыми помощниками. И теперь я точно знаю - ничего не утечёт никуда, так как никому не охота платить штраф в 3 мегарубля и\или даже "сесть" за кражу интеллектуальной собственности.
А меры подобные описанным здесь - не помогут, увы. Если что-то принципиально можно слить - оно будет слито. Хоть ты за 100500 обсракций выноси свои классы, хоть огораживай фундаментально доступ. И даже если удастся обеспечить достойную защиту на таком уровне, она начнёт неиллюзорно мешать разработке. Знаете притчу про "гнилое ядро"?
Так что я бы вам посоветовал - прежде всего проработать организационные вопросы. Хотите помощников - дайте им достойную зарплату и не менее достойную работу "согласно ТК". Вместе с этим - у них появится и отвественность за свои действия, и в случае чего - вы будете иметь полное право призвать работника к ответственности. Тем более если у вас такой посещаемый проект, то уверен и прибыли более чем достаточно на то, чтобы нанять хотя бы двух человек официально.
Данный класс представляет собой - простейший компилирующий шаблонизатор, который компилирует шаблон 1 раз, в дальнейшем отображая его из скомпилированной в php-код версии, без необходимости дальнейшей компиляции. Дабы не усложнять - в нём намеренно имеется ТОЛЬКО реализация назначения переменных шаблона, компиляция, отображение и больше ничего.
- Класс тотально упрощён и облегчен.
- Добавлена поддержка реквестов с неограниченной вложенность.
- Работает на php 5.4
Вместо рекурсии в методе filter_vars - можно было бы использовать функцию array_walk_recursive(), но к сожалению, в php 5.4 эта функция стала во многом бесполезной. В частности - она больше не может изменять перебираемый массив "на лету".