Виды PHP-роутинга

PHP

Фактически любой php-проект содержит какой-то роутинг. Без роутинга могут обходиться наверное только единичные страницы, где используется индексный файл index.php (например — лендинг), а также прямое обращение к php-файлу на сервере (сайт/contact.php и т.п.). Также встречаются разработки (обычно старые), где роутинг вынесен в .htaccess, в котором явно прописывается соответствие входящего URL какому-то php-файлу на сервере.

Но на сегодняшний день фактически стандартом стал подход, когда в .htaccess задаются простые правила, по которым все входящие запросы передаются во фронт-контролер (обычно это index.php). После этого загружается «ядро», может быть происходит какая-то инициализация, и дальше управление передаётся в роутер. Роутер на основе заданных правил подключает нужные файлы и, например, запускает на выполнение соответствующие функции/методы. Если бы мы рассматривали минимальное php-приложение (по современным подходам), то оно бы состояло только из фронт-контролера и роутера. Всё остальное — это обвеска на роутер. Именно так устроены современные php-фреймворки.

Читать дальше →

Кэширование в PHP

PHP

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

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

Совершенно бессмысленно создавать кэш для функций, которые редко вызываются в коде. В этом случае затраты на кэширование просто не «окупаются».

Существует два основных подхода к организации кэша: в файле и в памяти.

Читать дальше →

Приватные репозитории GitHub для работы с клиентами

Git. GitHub

Хорошая новость — GitHub разрешил создавать приватные репозитории с любым количеством участников бесплатно. Это на самом деле крутая вещь, поскольку позволяет (наконец-то!) перенести работу с клиентом на гитхаб. Например я сейчас в основном использую google-документы, где клиент расписывает ТЗ и там мы пытаемся организовать какой-то рабочий процесс. Были с моей стороны попытки использовать другие сайты, то там либо всё очень сложно (для клиентов), либо дорого.

Я немного поэкспериментировал и хочу рассказать как можно теперь использовать GitHub под подобные задачи.

Читать дальше →

Тайм-трекер для учёта времени работы

Софт

Тайм-трекер для учёта времени работы Мне, как фрилансеру, иногда приходится выполнять работы с оплатой не за объём, а с учётом потраченного времени. И здесь как раз и нужна программка, которая будет вести этот самый учёт. Когда-то давно я для этого использовал разные сторонние программы, но потом всё-таки написал свой «велосипед», который полностью подходит под мои задачи.

Программой я пользуюсь уже достаточно давно, периодически добавляя в неё новые возможности. Хочу поделиться ей, возможно кому-то она также окажется полезной.

Программа бесплатна, не требует установки: достаточно распаковать её в отдельный каталог. В процессе работы будет создан один ini-файл для сохранения настроек, а также log-файл, который хранит все отработанные сессии.

Читать дальше →

Мартовский релиз MF

Шаблон MF

Продолжаются работы по MF и я анонсирую мартовский релиз. Если вы купили шаблон, то можете заказать обновление.

Итак, что нового? Были исправления для адаптации под PHP 7.4. То есть теперь, как и MaxSite CMS можно использовать самую новую PHP-версию. В систему из MF перекочевала возможность указывать компоненты шапки и подвала для разных адресов. Это новое поле в настройках шаблона.

Сделал новый шорткод include. Он для подключения произвольного php-файла шаблона прямо в тексте записи. Смысл в том, чтобы получить возможность использовать в тексте записи существующие блоки, например из mf-store или myparts. Но вообще у меня есть несколько интересных задумок по созданию множества произвольных лендингов на сайте. Со временем, думаю, я смогу отладить весь техпроцесс так, чтобы он был простым и удобным для использования.

Читать дальше →

Перейти к странице: