Рубрика «Zend Framework» - 4

У многих рано или поздно возникает необходимость в обеспечении мультиязычности своих веб-приложений. Не будем сегодня прибегать к обзору всего разнообразия возможных решений, а остановимся на довольно узконаправленном сравнении обеспечения мультиязычности при помощи пакета Zend_Translate и библиотеки Gettext.

Итак проведем мини-эксперимент, чтобы сравнить в этих двух реализациях быстродействие и количество занимаемой памяти при выполнении скриптов.
Читать полностью »

Пожалуй, это был один из самых муторных челленжей для меня за последнее время.

Итак. Мы занимаемся технически сложными проектами, потенциально рассчитанными на высокие нагрузки (highload). Так получилось, что среди систем управления контентом пока победил Битрикс. Его хотят клиенты. Судя по нашему опыту — highload на Битриксе — очень даже реальная задача, если делать все аккуратно.

ZendFramework + Bitrix

Обычно в проектах, где много форм, личных кабинетов или какая-то сложная логика — мы предлагали на выбор клиенту реализацию на Zend Framewok или на Битрикс. Минус ZendFramework был в том, что на нем нужно писать админку. Минус Битрикса — он плохо приспособлен под проекты со сложной бизнес-логикой: там толком нет MVC и местами отвратительный код и API. Маркетинговые байки-балалайки про ядро D7, которым уже 2 года — мы в расчёт не берем:

«Talk is cheap. Show me the code» (Linus)

Итак, возникла идея на сложных проектах использовать ZendFramework с управлением данными из админки Битрикса. Читать полностью »

В продолжение статьи, где описана похожее решение под Питон.

Постановка задачи и предлагаемое решение

Дано: клиенты вызывают серверное API вашего приложения.

Задача: мониторить количество вызовов API.

Предлагаемое решение: использовать Google Analytics.

Как: вызывать Google Analytics API. В принципе, мы заимствуем решение, созданное Google для мониторинга в мобильных приложениях.

Зачем это может быть нужно? Если вы уже пользуетесь Google Analytics для мониторинга вашего веб-проекта, то почему бы не собирать и статистику по API в том же интерфейсе?

Мониторинг серверной API через Google Analytics на PHP
Рисунок 1 — статистика по использованию API

Плюсы такого подхода:

  • наличие статистики по нагрузке API вообще (инвесторам нравится!),
  • получение статистики малой кровью через вызовы готового Google Analytics API (об этом ниже),
  • единый интерфейс для статистики и для веб-части, и для API,
  • готовый к использованию арсенал Google Analytics — анализ, отчёты, просмотр истории, сравнение данных по периодам.
  • в интерфейсе Google Analytics можно смотреть использование вашего ресурса в реальном времени.

Мониторинг серверной API через Google Analytics на PHP
Рисунок 2 — использование API в реальном времени

Минусы:

  • многие параметры Google Analytics будут отсутствовать как не имеющие смысла вроде «какой браузер», «включены ли куки» и т.д.
  • если не предпринять дополнительных усилий, все ваши клиенты будут считаться новыми посетителями

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

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

В принципе, эта проблема решается, если в dev-окружении в приложение подключается какой-нибудь плагин/модуль (например Profiler в Symfony), отображающий имя файла или класс контроллера, или если используется какой нибудь отладчик. Но все-таки, куда удобнее перейти к исходнику прямо со страницы в браузере. О том, как мы реализовали это в AdMe, читать под катом.
Читать полностью »

Дайджест интересных новостей и материалов из мира PHP за последние две недели №14 (26.03.2013 — 08.04.2013)

Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать полностью »

Привет, читатели!

Многие разработчики начали изучать Zend framework 2 и, скорее всего, столкнулись с проблемой использования постоянного адаптера для базы данных. Я хотел бы поделиться с вами интересной статьей, которая помогла мне решить этот вопрос.

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

Дайджест интересных новостей и материалов из мира PHP за последние две недели №11 (12.02.2013 — 25.02.2013)

Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать полностью »

Написание статьи навеяно habrahabr.ru/qa/34735/ и habrahabr.ru/qa/32135/ вопросами, в качестве ответов на которые не смог найти полной и подробной информации, чего очень не хватало. Я надеюсь, что она будет полезна и другим.

Проект, на чью долю пал выбор в виде ZF в качестве основного фреймворка, представлял из себя мобильную версию сервиса (адаптивный дизайн с некоторыми ньюансами) + АПИ для мобильных приложений.
Коллегиально было принято политико-техническое решение делать единое АПИ, посредством которого будет общаться и сайт, и приложения.

На этом, думаю, прелюдию можно закончить и перейти к самому интересному.
Читать полностью »

Дайджест интересных новостей и материалов из мира PHP за последние две недели №10 (26.01.2013 — 11.02.2013)

Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать полностью »

Здравствуйте дорогие читатели.
Совсем недавно вышел в свет Zend Framework 2. Однако его изучение у многих усложняет отсутствие русской документации и единого сообщества. Так же во второй ветке этого фреймворка появилось множество нововведений и плюшек, про который обычный PHP программист раньше даже не слышал. Но их можно изучить особо не потея. А вот понять, как работает ZF2 без понимания логики работы его MVC системы достаточно затруднительно. Поэтому решил сделать перевод с официального сайта именно этого раздела.И так приступим.

MVC в Zend Framework 2

ZendMvc представляет собой совершено новую реализацию MVC системы для Zend Framework 2. Основное внимание было уделено производительности и гибкости.

Слой MVC построен на основе следующих компонентов:

  1. ZendServiceManager — Zend Framework предоставляет набор различных сервисов, определенных в ZendMvcService. ServiceManager создает и настраивает экземпляр вашего приложения и рабочего процесса.
  2. ZendEventManager – MVC является событиями. Данный компонент используется повсеместно. Для начальной загрузки приложения, возврата ответов (response) и запросов (request), настройки и получения маршрутов (routes), а так же для обработки (render) скриптов вида (views).
  3. ZendHttp – особый объект запросов (request) и ответов (response). Используется с ZendStdlibDispatchableInterface. Все контроллеры представляют собой объекты «dispatch».

В MVC слое используются следующие вспомогательные компоненты:

  1. ZendMvcRouter – содержит классы, обеспечивающие маршрутизацию запросов. Другими словами, перенаправляет запросы к нужным контроллерам.
  2. ZendHttpPhpEnvironment – предоставляет набор декораторов объектов HTTP запросов и ответов, обеспечивающих инъекцию запросов в текущую среду (включая GET и POST параметры, HTTP заголовки).
  3. ZendMvcController – набор абстрактных классов контроллеров с базовой функциональностью, такой как создание событий, диспетчеризацией действий и т.д.
  4. ZendMvcService – набор ServiceManager фабрик и определений по умолчанию для различных процессов приложения.
  5. ZendMvcView – предоставляет стандартные возможности визуализации скриптов вида, регистрации помощников и многое другое. Так же предоставляет различные слушатели, которые «связывают» рабочий процесс MVC, обеспечивая такие функции, как автоматическое разрешение имен шаблонов, автоматическое создание модели вида и инъекций, т.д.

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


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