Обновить
128K+

PHP *

Скриптовый язык общего назначения

97,22
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Сравнительный анализ CMS: охота на оптимальную систему для создания корпоративных сайтов

Время на прочтение14 мин
Охват и читатели95K
Здравствуйте!

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

Радикальное решение от GoDaddy для борьбы с консерваторами

Время на прочтение3 мин
Охват и читатели8.5K
Уже долгие годы для части своих второстепенных проектов использую хостинг от GoDaddy. Проекты эти пристального к себе внимания не требуют, а посему я не особо тщательно контролирую их работоспособность – они живут своей тихой жизнью. Тем не менее, эти сайты для меня важны, так что очередная выходка хостера меня серьезно расстроила.

Следует отметить, что размещенные на GoDaddy сайты разрабатывались уже давно – лет 5-6 назад и были написаны на PHP4.

Хостер казался мне не плохим, хотя и не давал полностью расслабиться, а держал в тонусе систематическими (раз в квартал) проблемами с видимостью моих проектов. В таких случаях я писал в суппорт и на следующий день получал умный ответ вида «Ну фиг знает, мы глянули – у нас все работает. Ищите косяки у себя.». И действительно уже работало. Однажды я решил ради эксперимента подождать до обращения в поддержку неделю. В результате сайты всю эту неделю молчали, а через несколько часов после моего письма в GoDaddy вновь заработали. Ответ на претензию был копипастом предыдущих. «Ну фиг знает…». Никаких извинений.

Но в этот раз GoDaddy переплюнул сам себя.
Читать дальше →

Архитектура форм в Symfony2

Время на прочтение10 мин
Охват и читатели24K
Картинка для привлечения внимания

В Symfony 2 появился совершенно новый компонент для работы с формами, который, насколько я знаю, легко заменит большинство подобных библиотек для PHP и по функционалу, и по возможности в расширении оного (конечно, если не брать в расчет небольшие недостатки при работе с JavaScript). Разработка этого компонента заняла более двух лет, хотя думать над ним я начал еще где-то в 2009-ом году или даже раньше. С каждой новой версией этот компонент становится все более и более стабильным, а полностью стабильная версия ожидается с выходом Symfony 2.2.

Данный пост приурочен к выходу Zend Framework 2 Form RFC, так как мне кажется, что его разработчики, по сути, сделали много того, что уже было сделано нами. Конечно же всем ясно, что Zend Framework 2 должен обладать прослойкой для работы с формами, который полностью учитывает особенности компонентов, поставляемых с фреймворком. Целью данного поста является попытка показать, что Symfony2 Forms прекрасно подходит под эти требования. Функционал, присущий Symfony2, может быть легко убран: код для обработки форм и все уровни абстракций полностью независимы. Привязать же поддержку особенностей компонентов Zend-а так же не составит труда.

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

Сериализация объектов в json формат для реализации REST API

Время на прочтение8 мин
Охват и читатели31K
Уже вот-вот выйдет версия Symfony 2.1, а в сообществе до сих пор нельзя реализовать «без костылей» полноценный REST, и, по-моему, здесь что-то не так. Недавно вышла статья с громким названием REST API’s with Symfony2: The Right Way, но, по существу, она лишь подтверждает мои слова. Вся проблема упирается в сериализацию и десериализацию объектов. Казалось бы, простейшая задача и решений должно быть много, но, к сожалению, нет. Давайте обо всем по порядку.
Читать далее

Интеграция пользователей сайта и форума на phpbb 3

Время на прочтение4 мин
Охват и читатели14K
Совсем недавно возникла необходимость быстрой интеграции сайта и форума phpbb3. Погуглив, нормального примера не нашел. Пришлось писать самому. Возможно, кому-то пригодится.

Итак, пусть есть сайт, с собственной системой авторизации. Необходимо добавить форум phpbb с быстрым (и возможно даже правильным) решением проблем с интеграцией существующей пользовательской базы. Авторизация и регистрация новых пользователей по-прежнему будет происходить на сайте, в форум будут попадать уже зарегистрированные пользователи. Регистрация и авторизация на форуме будет закрыта.

Для начала отключим возможность регистрации новых пользователей:
Для этого в администраторском аккаунте перейдите на вкладку “Общие”, и в левом меню выберите “Регистрация пользователей”. Далее отключаем регистрацию:
Читать дальше →

PHPExcel и большие файлы

Время на прочтение4 мин
Охват и читатели102K
PHPExcel — отличная библиотека с огромным функционалом по работе с форматами xls, xlsx. Можно считывать, записывать, менять форматирование, задавать формулы, а из xlsx можно и картинки вытаскивать.

На хабре уже был пост про эту библиотеку - Универсальное чтение ячеек в PHPExcel. Я остановлюсь только лишь на главном минусе PHPExcel — вечно памяти не хватает, все время сыпятся ошибки «Fatal error: Out of memory». Этот пост о том, как это обойти.

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

JSON-RPC 2.0 и PHP

Время на прочтение8 мин
Охват и читатели64K
Если вы разработчик, и у вас есть проект на PHP, и ему наконец-то понадобилось реализовать собственное API — эта статья определенно для вас ;).

JSON-RPC v1.0 появился в 2005 году, спустя 5 лет появилась и вторая версия. В век javascript'а и мобильных приложений многие разработчики до сих пор используют свои собственные велосипеды вместо готового простого стандарта.
Попробуем разобраться в вопросе

Генератор масок из интервалов DEF кодов для Asterisk

Время на прочтение3 мин
Охват и читатели9.8K
Что имеем на входе:
  1. несколько SIP операторов для исходящей связи, причём у некоторых более «вкусные» тарифы на определенного мобильного оператора;
  2. данные по DEF кодам на rossvyaz.ru выделенным операторам, но разбитыми на интервалы в том числе смежные (особенно заметно для МегаФона);
  3. настроенный Asterisk в виде дистрибутива Elastix.

На выходе хотим получить список масок для определения номеров московских сотовых операторов (МСС, Билайн, МТС, МегаФон). Для этого за пару часов был написан небольшой скрипт, который наверняка может пригодиться кому-то еще и при небольших изменениях может быть переделан под других операторов или другие регионы.

Upd.: генератор масок по DEF-кодам для Asterisk — теперь и онлайн =).
Читать дальше →

Создание облачного сайта на PHP и MySQL и его развертывание с помощью Git

Время на прочтение7 мин
Охват и читатели20K
Это руководство содержит сведения по созданию веб-сайта на базе PHP и MySQL в Windows Azure и его развертыванию с помощью Git. Для выполнения заданий нужно будет использовать установленные на компьютере PHP, средство командной строки MySQL (часть MySQL), веб-сервер и Git. Инструкции, содержащиеся в этом руководстве, можно выполнять в любой операционной системе, включая Windows, Mac и Linux. После выполнения всех действий будет создан веб-сайт PHP/MySQL, работающий на платформе Windows Azure.

О чем пойдет речь в данном руководстве:
  • Как создать веб-сайт Windows Azure и базу данных MySQL с помощью портала управления (предварительная версия). Поскольку на веб-сайтах Windows Azure технология PHP включена по умолчанию, для выполнения кода PHP никакие особые действия не требуются.
  • Как публиковать и повторно публиковать приложения на платформе Windows Azure с помощью Git.

Следуя инструкциям данного руководства, вы создадите простое веб-приложение на языке PHP для регистрации участников мероприятия. Это приложение будет размещено на веб-сайте Windows Azure. Ниже приведен снимок экрана готового приложения.

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

Удобные классы для получения статусов IM на PHP

Время на прочтение3 мин
Охват и читатели1.6K
Вдохновившись темой получения статусов мессенджеров на PHP, я решил структурировать код получения статусов, так и родился мой небольшой проект.

Основная концепция моего проекта такова:
1. ООП
2. Использование универсальных и удобных велосипедов классов для основных и вспомогательных функций
3. Получение статуса как описанного в enum кода, но не текстовым или иным сообщением, отделение вида от контроллера.

Подробное описание проекта

Спящий режим и использование InternetSharing на Macbook

Время на прочтение5 мин
Охват и читатели2.4K
В статье описан способ автоматического отключения/включения InternetSharing, который препятствует переходу Macbook в спящий режим или вновь пробуждает ноутбук, если вручную всё же его усыпить.
Читать дальше →

Сериализация в php: serialize, json, bson

Время на прочтение1 мин
Охват и читатели17K
Выбрал функции сериализации для бд — bson. Быстрее serialize в >1.5 раза, json — в 3. Да и результат меньше всех остальных.
Найти его можно в расширении для MongoDB.
Результаты далее.
Читать дальше →

Host и Request_Uri в списке сессий Oracle

Время на прочтение1 мин
Охват и читатели1.6K
Чтобы в списке сессий на сервере Oracle видеть откуда с веба нам пришел запрос, достаточно добавить 7 строк кода в расширение PHP OCI8.



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

Ближайшие события

Впечатления работы с платформой приложений Mamba.Ru

Время на прочтение6 мин
Охват и читатели7.4K
В этом посте я поделюсь опытом и проблемами, с которыми мы столкнулись при работе с платформой приложений Mamba.
Читать дальше →

Реализация MVC паттерна на примере создания сайта-визитки на PHP

Время на прочтение16 мин
Охват и читатели750K
mvc

Как вы уже догадались из названия статьи, сегодня речь пойдет о самом популярном, разве что после Singleton, шаблоне проектирования MVC, хотя такое сравнение не совсем уместно. Понимание концепции MVC может помочь вам в рефакторинге и разрешении неприятных ситуаций в которые, возможно попал ваш проект. Дабы восполнить пробел, мы реализуем шаблон MVC на примере простого сайта-визитки.

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

Как я делал нотную капчу

Время на прочтение2 мин
Охват и читатели7.6K
Однажды в далеком 2009 году я делал сайт для музыкантов. Единственным средством обратной связи на сайте была гостевая книга. Чтобы не пустить ботов, спамеров и нехороших людей, нужна была капча. Так как сайт для музыкантов, то я подумал, пусть капча тоже будет музыкальной.

То, что получилось, выглядит примерно так:


или так:

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

Создание форумов phpBB в облаке за несколько минут

Время на прочтение1 мин
Охват и читатели8.2K
phpBB.jpeg

Создание собственных форумов на базе популярного движка phpBB стало еще проще и доступнее. В галерее готовых шаблонов облачного сервиса Windows Azure Web Sites (бесплатно доступного для 10 сайтов) появился шаблон форума phpBB. Это дает возможность в несколько кликов развернуть форум и масштабировать его в облаке.

Для создания собственного форума проделайте следующие простые шаги.

Шаг первый. Зарегистрируйтесь на сайте http://windowsazure.com/ru-ru/ и получите 90-дневный бесплатный доступ к облачной платформе. Запросите доступ к новым функциям платформы по адресу https://account.windowsazure.com/PreviewFeatures.

Шаг второй. Перейдите в панель администрирования Windows Azure по адресу http://manage.windowsazure.com/ и с помощью мастера создайте новый сайт на базе сервиса Web Sites. В галерее готовых шаблонов выберите форум phpBB.

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

AMatch, часть 2. Коды ошибок, собственные ошибки, новый формат callback

Время на прочтение7 мин
Охват и читатели1.5K
В этой статье я расскажу о некоторых новшествах, появившихся в проекте AMatch с момента написания первой статьи.

Напомню, что AMatch — класс, с помощью которого валидация входных параметров из большого набора if-ов превращается в удобную, лаконичную запись. К примеру:

Example: simple
$match = AMatch::runMatch($params)
	->doc_id(0, '<') // Левое значение меньше
	->subject_id(0, '!=') // Не равен нулю
;
$result = $match->stopMatch();
if (!$result) {
	die(var_export($match->matchComments(), true)); // для наглядности умрём
}
Новые возможности под катом

Почему все работают с ООП? Кратко о главном или «пища» для размышления

Время на прочтение3 мин
Охват и читатели8.3K
Не знаю пока, зачем и почему первым постом я выбрал именно этот. Да я прекрасно понимаю, что из этого поста я получу много отрицательных комментариев и возможно карма будет неизбежно испорчена, но будем надеяться оно того стоит.

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

В этот же момент я пропишу немного материала, которая позволит исключить часть негатива, который вызывает данный пост в истинных ООП-ков.
Читать дальше →

RedBeanPHP — CodeFirst PHP фреймворк

Время на прочтение6 мин
Охват и читатели33K
RedBeanPHP
В данном посте речь пойдет об весьма интересном ORM фреймворке RedBeanPHP. Примечателен он, прежде всего, возможностью создавать структуру базы данных на лету. К тому же фреймворк прост в использовании как две копейки. Моё повествование будет разделено на 3 части.
Во второй части основная тема будет — модели. В третей — изменение логики работы фреймворка.

Перед написанием поста я потрудился и сделал тестовое приложение с 15 000 записей, для того, что бы убедиться на своем опыте в возможности невероятно облегчить работу. Ведь я наверно не один, кто прописывает поля в нескольких местах с жутким осознанием бессмысленности этой работы, особенно на начальном этапе разработки. Наконец появился аналог Entity Framework Code First из .NET, который в свое время вызвал у меня дикий восторг. Итак по порядку.
Читать дальше →