Рубрика «php» - 140

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

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

Приступим к настройке

Читать полностью »

в 14:22, , рубрики: php, sensiolabs, symfony, symfony 2

За последний год я очень много говорил о Symfony 3.0 на разных конференциях. Я думал о наилучшей стратегии для этой версии уже давно, и теперь настало время поделиться моими мыслями со всеми.

Мажорные версии

Некоторые разработчики и большинство менеджеров проектов боятся обновлений мажорных версий используемых ими проектов с открытым исходным кодом. Наверное, это из-за того, что мажорные версии ассоциируются с потерей обратной совместимости. Возникает много вопросов: принесут ли изменения пользу моему проекту? Достаточно ли ясны планы разработчиков, чтобы был смысл обновляться? Будет ли обновление легким? Что, если я не могу или не хочу обновляться? И так далее.

Страх перед мажорными версиями растет своими корнями из нашего прошлого: вспомните Perl 6 или PHP 6. В мире Symfony вторая версия тоже была революционной по сравнению с symfony 1. Я понимаю, почему люди нервничают, когда слышат о третьей версии, и именно в этом посте я расскажу, почему вам не нужно паниковать.
Читать полностью »

Codeship.io: бесплатный CI сервер для приватного репозитория Github Bitbucket
Сразу заинтригую: в результате мы получим связку бесплатного приватного git репозитория на Bitbucket и бесплатный* Continious Integration сервер (SAAS), который будет собирать проект и прогонять все тесты после каждого пуша.
* — бесплатная подписка дает возможность тестировать 5 приватных репозиториев и максимум 100 билдов в месяц.

Мне этого для личного проекта достаточно.

Приведу пример для PHP, проект на Symfony2, но данный сервис поддерживает ещё и Ruby, Node.js, Python.

Читать полностью »

Разбираемся с каркасом расширений для FFCMS — hello world! Как я и обещал ранее, в своем предыдущем посте на habrahabr сегодня я хочу рассказать вам о том, как написать свое первое расширение для системы управления содержимым сайта FFCMS. В данном материале мы ознакомимся с вами с основным каркасом расширений, который необходим для взаимодействия с системой — иными словами мы напишем с вами «hello world» в представлении для ffcms как компонент, модуль и хук.
Читать полностью »

Давно стояла задача собрать два проекта в один. Был магазин на платформе ShopScript 5 и небольшое приложение на Yii. Требовалось сделать общую авторизацию, личный кабинет и, вообще, совместить эти два проекта в один.
Наконец, дошли руки и было решено подцепить Yii к ShopScript в качестве отдельного приложения. Приложение будет называться Tracker.

О том, что было сделано — по порядку:

1. Создание пустого приложения для ShopScript

Создание болванки приложения довольно хорошо описано в мануале на сайте ShopScript.

В принципе, ничего сверхъестественного. Приложение будет представлять из себя всего два экшена:

  • BackendAction — в котором опишем DefaultAction. Его мы пока оставим пустым;
  • FrontendAction — в котором опишем метод execute, реализующий всю логику фронтенда. Его мы пока также оставим пустым.

Для приложения так-же необходимо создать файл конфига, несколько иконок и вьюх. Это все подробно описано в мануале на сайте ShopScript, так что описывать этого здесь не имеет смысла.
Читать полностью »

В интернете описано множество решений по получению актуальных курсов валют. Большинство решений основано на бесплатном сервисе Центробанка (подробнее о сервисе на сайте Центробанка).

Казалось бы, хороший и удобный интерфейс от главного экономического регулятора РФ, однако у него есть несколько неприятных особенностей. Самый значительный его минус в том, что IP, с которого вы будете парсить их сервис курсов валют может, быть заблокирован в любой момент совершенно неожиданно для вас. В моем случае я обновлял курс через сервис ЦБ РФ около 2 месяцев, каждый день каждые два часа (для организации очень важно иметь актуальные данные по курсу валют). Причем на сайте не указано никаких ограничений по использованию данного сервиса, более того, они предлагают свой скрипт для получения актуального курса. Если вас заблокировали, с данного IP вы даже не сможете зайти на сайт регулятора. Для заблокированных пользователей они выводят страницу с бесконечной переадресацией. Обычно блокировка длится не более 24 часов, однако нет никаких гарантий, объяснений причин и т. п. В общем и целом предоставляемый ЦБ РФ сервис ненадежен.
Читать полностью »

Доброго времени суток! Я работаю над веб-проектом X. Проект большой, сложный и перспективный. Но, как и в любом другом проекте, есть много кода, написанного наспех с пометкой «когда-нибудь исправлю».

Пришло время исправлять.

Читая очередной мануал, я обнаружил шаблон проектирования «Active Record». Простой запрос в Google, и вот уже подруга Википедия коротко и ясно рассказала обо всём (https://ru.wikipedia.org/wiki/ActiveRecord). Смысл шаблона прост: для работы с таблицами в базе данных решено было создать специальный класс, который бы выполнял все основные действия (CRUD).
Читать полностью »

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

Что из этого получилось приглашаю начинающих программистов почитать, а опытных обсудить. Для меня самого финал был неожиданным.
Читать полностью »

Приходилось ли вам разбираться в запутанном коде без внятной документации? Например, что происходит при создании страницы в какой-нибудь CMS, или почему и откуда именно чужой код посылает email, или делает что-то еще?

Есть множество приемов для погружения в чужой код. Можно использовать var_dump(), для чего вам придется запускать один и тот же сценарий множество раз. Можно настроить отладчик, но тогда вам придется заходить (Step Into) во множество функций которые не относятся к тому что вы ищете, а если вы пропустите (Step Over) какой-то важный вызов, вам придется начинать все сначала. Современные IDE предоствляют хорошие средства статического анализа кода, но и с их поддержкой бывает сложно понять, что происходит во время выполнения.

Долгое время меня привлекали возможности трассировки xdebug, но вручную отследить что-либо в многомегабайтном логе совершенно не реально, а какого-нибудь внятного GUI для *.xt файлов я так и не нашел. Поэтому решил написать свой визуализатор, о котором и хочу рассказать.

Читать полностью »

image

Всем привет. Как-то давным придавно писал статью первый пост о проекте IceCash. Собственно никуда этот проект не потерялся, живет себе в моей организации и понемногу совершенствуется. Работает примерно на сорока кассах. Не шедевр, конечно, но свою функцию выполняет.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js