Обновить
52.06

PHP *

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

Сначала показывать
Период
Уровень сложности

Подобие LINQ на PHP для EAV модели хранения данных

Время на прочтение4 мин
Количество просмотров5.6K
Увидев пост о LINQ на PHP, я решил незамедлительно поделиться своими наработками в этой области.
Моей реализации далеко до полноценного LINQ, но в ней присутсвует наиболее заметная черта технологии — отсутвие инородной строки запроса.
Читать дальше →

RabbitMQ tutorial 5 — Тематики

Время на прочтение4 мин
Количество просмотров45K
Продолжаю серию перевода уроков с официального сайта. Примеры будут на php, но их можно реализовать на большинстве популярных ЯП.

В предыдущей статье мы усовершенствовали системы логирования. Вместо точки доступа fanout (которая подходит только для элементарной трансляции сообщений), мы использовали direct — и получили возможность получать сообщения через определенные выборки.

Хоть direct и усовершенствовал нашу систему, он всё-таки имеет недостаток — он не может составить маршрут(routing) по нескольким критериям.

Например, нам понадобилось разделять логи не только по его типу важности, но и по источнику лога. Вы наверное встречали такую концепцию в unix инструменте syslog, которые различает логи по его типу важности(info/warn/crit...) и по его объекту (auth/cron/kern...).

Мы получаем гибкость в запросе. Например, мы может получить все логи с типом error, пришедшие из 'cron'-а, и все логи пришедшие с 'kern'. Для того, чтобы реализовать это в нашей системе логирования, изучим точку доступа — topic.
Читать дальше →

Как я подружил Quickbooks и PHP сайт с помощью Web Connector'а

Время на прочтение9 мин
Количество просмотров14K
Как-то однажды понадобилось клиенту интеграция Quickbooks (далее QB) и сайта, который мы ему и делаем. Первый вопрос который у меня возник по этому поводу: "Что такое QB, и можно ли вообще это реализовать?".

Немного погуглив я нашел то что искал. Quickbooks — это бухгалтерская программа для малого бизнеса (основной рынок использования США). Это что-то типа 1С но только с нормальным GUI и некоторыми прикольными плюшками. QB — это приложение, которое пользователь ставит у себя на компе (only for Windows) и с помощью пару кликов, разворачивает себе компанию в которой ведет бухгалтерию.

Ладно, теперь я, хотя бы, знаю своего врага в лицо, одной проблемой меньше. Что касается интеграции то тут все немного сложнее. С чем можно интегрировать QB вы можете посмотреть здесь. Что же мы там видим:

  • .NET SDK
  • Java SDK
  • PHP SDK (Coming Soon)
  • Windows Azure SDK
  • QuickBooks QBXML v12 SDK (но on desktop scenarios only)


Мда, PHP SDK (Coming Soon) — последняя надежда… Я почти отчаялся, но меня спасло это. Что же эта за штука такая — Web Connector? На офф сайта по этому есть небольшая страничка, на которой предлагают скачать QuickBooks Web Connector Programmer's Guide, и все (по крайней мере мне надоело искать информацию на офф сайте).
Читать дальше →

WAMP: перед установкой нового выпуска

Время на прочтение8 мин
Количество просмотров23K
Предисловие переводчика

Имея совсем небольшой опыт работы с набором WAMP (Windows Apache/MySQL/PHP), я столкнулся с необходимостью его переустановки как с целью обновления версий составляющих его частей, так и с целью установки openssl. Openssl в свою очередь мне необходим для использования composer, а composer для установки Laravel 4. Laravel 4 мне нужна просто из любопытства — хочется попробовать новую версию популярного фреймворка. Теперь вы знаете, что привело меня к переводу этой статьи, на которую я наткнулся в ходе поиска советов бывалых, уже прошедших этот путь людей, на форуме forum.wampserver.com. Статья свежая, от 11 октября 2013 г., возможно кому-то из вас она и пригодится. Итак…
Читать дальше →

Стали доступны свежие результаты тестирования производительности фреймворков от Techempower

Время на прочтение1 мин
Количество просмотров6.3K
Для тех кто еще не знаком с тестами веб фреймворков которые регулярно проводит Techempower очень рекомендую сделать это сейчас заглянув по ссылке www.techempower.com/benchmarks

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

Но пока Techempower предоставила лишь некое preview результатов 7-го раунда, дабы дать разработчикам возможность внести последние изменения или исправить баги. Если вам тоже интересно как покажет себя ваш фреймворк в 7-м раунде вы можете ознакомится с последними результатами тут www.techempower.com/benchmarks/previews/round7

P.S. Практически все PHP фреймворки возвращают ошибки, что свидетельствует о проблеме с инсталляцией PHP или MySQL на сервере. Надеемся что ее исправлят.

Модифицируем Chrome Logger — пост как стимул к изучению расширений Google Chrome и написанию своих

Время на прочтение3 мин
Количество просмотров7.4K
В своем комментарии: habrahabr.ru/post/177709/#comment_6169843 я описал проблему расширения из соответствующей статьи, кроме редиректов также есть проблемы с выводом логов AJAX запросов и возможно в некоторых случаях с iframe заголовками.
Я решил разобраться почему это происходит и понял, что то мое утверждение было слишком категоричным. После того как webRequest перестал быть экспериментальным developer.chrome.com/extensions/experimental.webRequest.html теперь можно писать логеры «на заголовках» обрабатывающие все, ранее проблемные, ситуации. Я не ставлю своей целью разобрать все такие ситуации, просто хотел бы показать — как можно модифицировать расширение Chrome Logger для решения части вышеуказанных проблем и возможно заинтересовать желающих разобраться с расширениями Google Chrome на простом примере. Может быть у кого-то после прочтения поста возникнет желание написать свое расширение.
Кому интересно - читаем дальше

Сравнение количества кода популярных фреймворков

Время на прочтение4 мин
Количество просмотров20K
Привет, Хабр. С каждым годом количество фреймворков увеличивается, появляются форки, некоторые становятся модными, а некоторые выходят из моды. Конечно разные фреймворки предоставляют разработчику разные возможности, которые прежде всего зависят от разработчиков, их идей, выбранной архитектуры, наличия документации… и конечно размера фреймворка. Вот об этом параметре мы и поговорим сегодня — всех заинтересованных попрошу под кат.

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

Внедрение зависимости c Inversion

Время на прочтение4 мин
Количество просмотров7.5K
Inversion это простой и функциональный контейнер внедрения зависимости для PHP 5.3. Поддерживает сервис-ориентированную архитектуру, ссылки, PRS-0, и Composer.



Установить можно через packagist.org: granula/inversion либо скачав и добавив к PRS-0 совместимому загрузчику.

$container = new Inversion\Container();
$container['foo'] = 'My\Class\Foo';
// ...
$foo = $container('foo');

Подробности

Обход областей видимости или неожиданное поведение функции EACH

Время на прочтение2 мин
Количество просмотров4.1K
Никогда не понимал зачем в PHP функция each. Ведь есть foreach…
Но сегодня у меня «сломался» один участок кода, который жил шесть лет.
Там была конструкция с использованием each.
ошибка была исправлена секунд за 30 — давно думал исправить это все на foreach, но оставлял в качестве напоминания о том, какой индокод у меня был в свое время. Но просто исправить и пройти мимо я не мог.
Итак each против ООП:
1 — each игнорирует области видимости и спокойно выводит private свойства.
Читать дальше →

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

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

Анти-спам модуль для Kohana

Время на прочтение2 мин
Количество просмотров2.9K
На днях понадобилось для одного проекта, на фреймворке Kohana, прикрутить защиту форм, от заполнения спам-ботами.
Готовых модулей не нашлось, а утруждать пользователей вводом каптчи не хотелось.

Поэтому было решено поискать на хабре готовые библиотеки или методики по борьбе со спамом.
Читать дальше →

Создание графиков с помощью pChart. Данные из MySQL

Время на прочтение3 мин
Количество просмотров41K
Здравствуйте Хабрачитатели! В этом посте я хотел рассказать вам о построении графиков с помощью pChart. Сложного в нем ничего нет, но стандартно(позже, на сайте девелопера нашел и MySQL инфу) он берет данные из файла. Мне это никак не подходило под свои нужны, и я начал ковыряться в скрипте. Результат ниже.

Итак, что нам понадобится:
1. php-модуль GD(для апаче естественно).
2. Скачать библиотеку pChart 1.27.

Чтобы долго все это дело не описывать, я сразу дам готовый скрипт для построения графиков, данные берутся из БД.
Читать дальше →

Немного опыта по работе с FatFree Framework

Время на прочтение3 мин
Количество просмотров7K
Предыстория

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

Изобретение велосипеда

Первые, конвульсивные попытки заставить себя сесть за работу выглядели печально, так как главной целью было (изначально) разработать ту самую «базовую систему», на которой потом уже делать проект. Наверное уже после третьей неудачной попытки, и осознании своей ошибки, я начал поиск простого и понятного фреймворка. Выбор пал на FatFree Framework.
Читать дальше →

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

phpBBex — добавляем автозагрузку классов и обработчики AJAX запросов

Время на прочтение4 мин
Количество просмотров2.1K
phpBBex logophpBBex — это расширенная версия phpBB 3, которая была анонсирована ранее на Хабре. Проект постепенно развивается, появляются новые полезные возможности. Сегодня у нас появился официальный форум и вышла новая версия нашего форка.

Как известно, код phpBB 3 был заложен в далёком 2002 году. Здесь всё по-старому. Нет никаких сложных абстракций, код простой и линейный. Для небольших проектов это не проблема. Но движок оброс функциональностью, и огромную массу кода сейчас не всегда просто изменить для достижения необходимого результата. Игнорирование современных паттернов мешает дальнейшему развитию. Понятно, что разработчикам phpBB важно следить за совместимостью кода со старыми модами, поэтому никаких серьёзных архитектурных улучшений ожидать не приходится. Выходом из ситуации должен быть phpBB 4 на основе Symfony 2, но за его разработку ещё не взялись. Очевидно, переписать такого монстра не так просто, так что в ближайшее время чуда не будет.

Поскольку в phpBBex планируется множество изменений, связанных с переводом интерфейса на AJAX, логичным было бы реализовать удобный механизм для добавления новых обработчиков AJAX запросов. Стандартным способом для phpBB сегодня является создание php файла в корне со своей логикой для каждой модификации. Это не дело. Мы попробовали добавить нечто вроде контроллеров. Обработчики сгруппированы в «классы-контроллеры», имеется единая точка входа, которая создаёт экземпляр необходимого «контроллера» и вызывает соответствующий обработчик. На основе этого мы создали систему анонимной оценки комментариев (почти как на Хабре).
Читать дальше →

«Автопереключение раскладки» в php-приложениях

Время на прочтение4 мин
Количество просмотров187K
Доброго времени суток!

С недавнего времени я занимаюсь разработкой системы чатов, так сказать чаты 3.0. Данная идея пришла после того как познакомился с такой интересной и удобной штукой как comet-сервер Realplexor от dkLab. Но сейчас не об этом…

Основной движок написал, чат работает, пользователи общаются, все вроде бы ничего, но есть одно НО! Все же мы люди и бывает забываем переключить раскладку клавиатуры с английской на русскую, такое бывает. После написания n-го количества слов отправляем сообщение и что видим — написали не в той раскладке, и редко кому захочется заново переписывать этот текст, а читателям не всем захочется переводить Ваши каракули. И решено было придумать какой-нибудь очень простой способ исправления таких сообщений.
А теперь поподробней!

Решение проблемы авторизации на форумах phpBB 3.0.X через Loginza

Время на прочтение2 мин
Количество просмотров2.5K
imageДрузья, недавно потребовалось установить на форум авторизацию через социальные сети. Из всех плагинов, что удалось найти по требованиям подошел только плагин Loginza. Для тех, кто не знает:

Loginza – это система идентификации, обеспечивающая единый доступ к популярным WEB-сервисам. Используя учетную запись Loginza Вы сможете посещать большое количество сайтов блогов и форумов, поддерживающих вход OpenID и виджет Loginza, — а это значит не нужно проходить однотипную регистрацию на каждом ресурсе и следить за актуальностью контактной и иной информации профиля на каждом из сайтов.

Почитав немного про него, я очень обрадовался — то что надо. Установка на локальной машине прошла чуть ли не в 1 клик, все работало просто идеально. Но после переноса на реально работающий сервер, по каким-то причинам слетела авторизация и регистрация. При попытке зайти в систему форум говорил, что пользователь опознан, но при следующем переходе на форум авторизация слетала. Посидев пару часиков и покопавшись в коде, я нашел причину проблемы.
Читать дальше →

Лямбда-функции и замыкания

Время на прочтение3 мин
Количество просмотров70K
imageКонечно многие из нас знакомы с этим понятием, однако данная статья рассчитана на новичков. В данном посте постараюсь рассмотреть данный феномен и привести примеры использования.
Читать дальше →

Используем php-cgi в своих приложениях

Время на прочтение3 мин
Количество просмотров32K
PHP — один из самых распространенных языков программирования. Созданный для написания небольших домашних страничек, он постепенно вырос и теперь используется миллионами веб-сайтов. Однако веб-сайтами дело не ограничивается — его можно использовать практически в любых приложениях, благо есть интерактивный, CGI и FastCGI режимы.
Режим CGI я и хочу описать. Его плюсы в относительной простоте и возможности передачи скриптам различных данных (в том числе бинарных). Минус у него лишь один — скорость работы, из-за многократных запусков приложения. Впрочем, минус этот исправляется с помощью более нового протокола FastCGI.
Итак, как же использовать php-cgi?

Oбучающий пакет PHP on Windows and SQL Server Training Kit

Время на прочтение1 мин
Количество просмотров783
Microsoft обновила обучающий пакет для PHP-разработчиков, которые размещают свои сайты на серверах Microsoft IIS и SQL Server.

Данный пакет содержит следующие лабораторные работы:
  • IIS 7.5 Access Control Features for PHP;
  • Обновлено: Using IIS 7.5 Media Features in a PHP Application (содержит новое упражнение по технологии Smooth Streaming);
  • Troubleshooting PHP;
  • Migrating PHP Applications to IIS 7.5;
  • Introduction to Using SQL Server with PHP;
  • Using SQL Server Full-text Search and FILESTREAM Storage with PHP;
  • Новая: Getting Started with SQL Server Migration Assistant for MySQL;
и следующие демонстрации: Spatial Demo и SQL Server Reporting Services Demo.

Загрузить обучающий пакет PHP on Windows and SQL Server Training Kit (с февральским обновлением)  можно по следующей ссылке.

Делаем фильтр от спама для почты

Время на прочтение3 мин
Количество просмотров11K
image

Благодаря gmail.com я мог все свои ящики собрать в кучу. Но столкнулся с проблемой, когда все сообщения приходит на одну почту, то ты спам начинаешь уже и замечать. И лень лазить и удалять спам руками, а тот фильтр, которые уже встроенный в почтовый сервис не всегда радует.

Почему не сделать бота, который чистит почту, тем более спам четко виден по некоторым признакам?
Вот что я выделил, что в моих глазах спам:
— всё написано в верхнем регистре
— сообщения, где главная мысль: порнуха, знакомства, казино, деньги и т.д.
— если кто-то регулярно высылает почту и я её не прочитываю
Читать дальше →