Данная публикация не претендует на полноту решения поставленного вопроса. Сервер разрабатывается исключительно в ознакомительных целях. Многие важные вопросы, такие как, например, обработка ошибок сокетов, опущены. Для реализации многопоточного сервера мы будем использовать, конечно же, потоки. Очень часто приходится видеть фразу, что, мол, в PHP потоков нет. Так вот это неправда. Потоки есть, но реализованы в отдельном расширении pthreads.
Читать полностью »
Рубрика «php» - 105
Реализация многопоточного сервера на PHP
2016-10-14 в 8:10, admin, рубрики: php, php socket server, метки: php socket serverНа хабре есть много статей, как сделать хорошо. Есть много статей, как делать не стоит.
Но что, если у вас есть проект, который работает, приносит бизнесу деньги, но из программистов, что-то в нем понять, не способен почти никто. Каждое изменение делается на страх и риск сыграть в русскую рулетку.
Хорошо, когда у вас есть годик или два для подготовки нового проекта с нуля (был у меня и такой опыт). Но если владелец не готов вкладываться в то, что вы будете что-то делать параллельно с нуля, пока старый движок во всю загибается. Попытки даже заговорить, о том, чтобы написать все по новой, встречают моментальный отказ. Но можно попробовать маленькими шажками, делать новый движок, который постепенно бы начал забирать на себя всю большую и большую роль в работе проекта. Собственно об опыте осуществить такую замену, я бы и хотел вам рассказать.
Читать полностью »
Весьма актуальная задача: Иметь возможность по клику мыши менять версию PHP на Windows машине. Ранее была подобная статья, в которой создаётся 3 копии httpd.conf. Зачем? Когда есть наипростейшее решение.
Читать полностью »
Несколько версий PHP под одним Apache на Windows (v2)
2016-10-10 в 13:42, admin, рубрики: Apache, php, php5, php7Данный туториал нам не подошел, потому что на фирме действует документ, регламентирующий структуру директорий на локалке, и все сайты (около 250) у нас лежат в одной директории. Понимаю и не устаю повторять, что данный документ это полный бред, но начальство не переубедишь. Поэтому возникла необходимость быстро переключаться между версиями PHP ничего никуда не перемещая, без «этих ваших денверов и опынсерверов и прочего, все должно быть с коробки, приду правэрю, иначе уволю!».
Читать полностью »
PHP-Дайджест № 94 – интересные новости, материалы и инструменты (25 сентября – 9 октября 2016)
2016-10-09 в 20:28, admin, рубрики: laravel, php, PHP 7, PHP-FIG, symfony, yii 2, Блог компании Zfort Group, Веб-разработка, дайджест, Новости, подборка, Разработка веб-сайтов, ссылки
Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.
Приятного чтения!
Реализация бизнес-логики в MySQL
2016-10-09 в 19:02, admin, рубрики: mysql, oracle, php, sql, бизнес логикаПривет! Хочу рассказать в статье мой опыт реализации бизнес логики (БЛ) в MySQL.

Есть разные мнения насчёт вопроса стоит ли хранить БЛ в базе. Я много лет работаю с Oracle и философия Oracle подразумевает, что БЛ в БД это Best Practices. Приведу пару цитат Тома Кайта:
Tom Kyte. Effective Oracle by Design
If the database does something, odds are that it does it better, faster and cheaper, that you could do it yourself
Том Кайт. Oracle для профессионалов.
Прежде чем начать, хотелось бы объяснить вам мой подход к разработке. Я предпочитаю решать большинство проблем на уровне СУБД. Если что-то можно сделать в СУБД, я так и сделаю. [...] Мой подход состоит в том, чтобы делать в СУБД все, что возможно. [...]
При разработке приложений баз данных я использую очень простую мантру:
- если можно, сделай это с помощью одного оператора SQL;
- если это нельзя сделать с помощью одного оператора SQL, сделай это в PL/SQL;
- если это нельзя сделать в PL/SQL, попытайся использовать хранимую процедуру на языке Java;
- если это нельзя сделать в Java, сделай это в виде внешней процедуры на языке C;
- если это нельзя реализовать в виде внешней процедуры на языке C, надо серьезно подумать, зачем это вообще делать...
В то же время в среде web-разработчиков приходится слышать мнения, что БЛ в БД это чуть ли не антипаттерн. Но я не буду останавливаться на вопросе стоит ли реализовывать БЛ в БД. Пусть каждый решает сам. Тем, кто хочет посмотреть, что у меня получилось в свете не столь обширного (по сравнению с Oracle) инструментария MySQL, добро пожаловать под кат.Читать полностью »
Asterisk и информация о входящих звонках в браузере
2016-10-07 в 5:24, admin, рубрики: asterisk, pami, php, ratchet, Клиентская оптимизация, Разработка веб-сайтовПрочитав заголовок, вы, наверное, подумаете «Избитая тема, да сколько можно об это писать», но всё равно не смог не поделиться своими велосипедами с костылями наработками.
Введение
В нашей компании запись клиентов осуществлялась по телефону через мини-атс (я в этом деле не силен и могу ошибаться). Все заказы сохранялись в базу данных, интерфейсом служит веб-приложение. Плотность звонков в определенные моменты бывает очень высока и диспетчеры, в силу человеческого фактора, не всегда правильно или не с первого раза записывают телефон клиента (когда он отображается на экране телефона).
Читать полностью »
Добавление поддержки СУБД Firebird в фреймворк Laravel
2016-10-03 в 6:41, admin, рубрики: firebird, Firebird/Interbase, laravel, php, Разработка веб-сайтовВо время написания примера (позже будет ссылка) веб-приложения на PHP с использованием СУБД Firebird возник вопрос выбора фреймворка для разработки с использованием архитектурной модели MVC. Выбор фреймворков под PHP очень большой, но наиболее удобным, простым и легко расширяемым показался Laravel. Однако этот фреймворк не поддерживал из коробки СУБД Firebird. Laravel использует для работы с базой данных драйвера PDO. Поскольку для Firebird существует драйвер PDO, то это натолкнуло меня на мысль, что можно с некоторыми усилиями заставить работать Laravel c Firebird.
Laravel — бесплатный веб-фреймворк с открытым кодом, предназначенный для разработки с использованием архитектурной модели MVC (англ. Model View Controller — модель-представление-контроллер). Laravel – это удобный и легко расширяемый фреймворк для построения ваших веб-приложений. Из коробки фреймворк Laravel поддерживает 4 СУБД: MySQL, Postgres, SQLite и MS SQL Server. В этой статье я расскажу как добавить ещё одну СУБД Firebird.
Читать полностью »
Пишем расширение с помощью библиотеки php-cpp для php7
2016-10-01 в 21:46, admin, рубрики: php, php extensions, метки: php extensionsКаждый php программист, хотя бы раз в жизни, задумывался о написания своего расширения для php. Сегодня я хочу рассказать о том как написать расширение с помощью библиотеки PHP-CPP. На примере вывода алерта с кнопкой, с помощью gtk.


Тем кому интересен процесс прошу под кат.
Читать полностью »
Какие перспективы у Node.js после воссоединения — мнения экспертов
2016-09-30 в 15:24, admin, рубрики: backend, javascript, node.js, php, веб-сервер, мнения экспертов, Разработка веб-сайтов, разработка сайтов
Когда-то PHP, Apache и MySQL в сочетании с JavaScript через AJAX был идеальной парой для веб-разработчика. Казалось, этот набор инструментов может позволить решить любую задачу. Однако требования повышались, исходный код разрастался на глазах, нагрузка возрастала и привычные инструменты перестали справляться.
Эксперты были уверены, что всему виной классическая схема «запрос-ответ». Запрос страницы заставлял веб-сервер поднять некоторый скрипт, выполнить его линейно, а результат возвратить браузеру клиента. И лишь только после этого перейти к обработке следующего запроса.
В поисках выхода из этой ситуации, светлые головы вспомнили, что сервер можно написать и на JavaScript.Читать полностью »
