Как стать автором
Поиск
Написать публикацию
Обновить
134.95

PHP *

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

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

BemPHP: реализация методологии БЭМ средствами PHP

Время на прочтение8 мин
Количество просмотров8.6K
Пришла мне тут как-то мысль освоить PHP, а, как известно, лучший способ изучить язык – это создать на нем велосипед фреймворк. При ковырянии в различных форумах и топиках заинтересовала меня одна методология, которую пропагандируют в уважаемой компании «Яндекс» — БЭМ. Кто ещё не в курсе этой методологии, почитайте на официальной страничке. Так же на Хабре есть публикация «Верстка для самых маленьких. Верстаем страницу по БЭМу» от хабраюзера xnim, в котором все объяснятся на конкретном примере. «Яндекс» написали свои модули и скрипты сборки проектов, однако выполнены они все на Node.js, а вот на PHP обнаружить что-то подобное мне не удалось (хотя, признаюсь честно, я особо и не искал). К тому же, PHP, как объектно-ориентированный язык, дает интересные возможности.


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

Templater — менеджер шаблонов и твикер для MantisBT

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

MantisBT — это открытое серверное веб-приложение для управления проектами и задачами аля Redmine. В прошлой своей статье я рассмотрел актуальную для этого проекта проблему — отсутствие шаблонов и угрюмость интерфейса. Вот линк на предыдущий пост. После всех обсуждений я решил развивать тему, и написал плагин для MantisBT, с помощью которого можно применять пользовательские шаблоны оформления. Собственно представляю вам этот плагин — Templater v1.0.
Читать дальше →

Патч-обновление FFCMS 2.0.4

Время на прочтение6 мин
Количество просмотров4.3K
Доброго времени суток, уважаемый читатель и обыватель habrahabr! За прошедшие 2 недели с момента моей первой публикации здесь и на других тематических ресурсах удалось собрать достаточно приличный репорт о системе, связанный с сообщениями о необходимости улучшения как интерфейсов системы, функциональных возможностей так и качества ее кода.
И вот сегодня я готов представить вам обновление(патч) FFCMS с версией 2.0.4, в которую вошли исправления и наработки связанные с вашими пожеланиями.
Я хотел бы поблагодарить всех тех, кто обратил внимание на FFCMS и внес свой вклад в развитие бесплатного продукта — я благодарен всем за ваш фидбэк и pull-request'ы на github'e — именно вы можете задавать направление разработки и улучшать систему для собственного и коллективного пользования.
Читать дальше →

Тестирование производительности популярных (и не очень) CMS

Время на прочтение5 мин
Количество просмотров26K
php script load total time seconds


Приветствую тебя, хабражитель! Разрабатывая FFCMS для своих проектов одной из основных своих целей я выделял быструю скорость работы и минимальное потребление ресурсов оборудования — однако все значения можно оценить лишь в сравнении, что я и постараюсь сделать в данной статье.

В прошлой моей публикации некоторые пользователи поинтересовались вопросом производительности системы и я решил провести тестирование различных популярных и молодых CMS по состоянию на 18 октября 2014 года. Хочется отметить — тестирование системы проводилось сразу же после ее установки и данные могут существенно измениться в ту или иную сторону в зависимости от периода использования системы — увеличения базы данных, количества файлов и прочие условия.
Читать дальше →

Drupal 8 Beta

Время на прочтение1 мин
Количество просмотров13K
imageСпустя 3,5 года с начала разработки Drupal 8, наконец, выпущена первая бета-версия. Эту версию уже можно использовать для разработки будущих проектов и переноса старых, однако не рекомендуется использовать в действующих проектах, поскольку всё ещё существуют критичные баги и возможность потери данных. Критические части API стабильны, модель данных закончена, как и функциональное наполнение. Финального релиза, думаю, следует ожидать не ранее середины 2015 г.
Читать дальше →

Простой экспорт в Excel XML

Время на прочтение6 мин
Количество просмотров48K
При разработке системы электронного документооборота потребовалось реализовать функции для экспорта данных в популярных форматах. В частности, в формате Microsoft Excel. Требования к экспорту были довольно простые – экспортировать данные с минимумом форматирования, т.е. никаких объединенных ячеек, игр со шрифтами и т.п. Форматы экспорта XLSX и Excel XML.



В данном случае расскажу про Excel XML.
Читать дальше →

И снова Яндекс.Погода для сайта: время суток, направление ветра и прочие параметры

Время на прочтение6 мин
Количество просмотров60K
В продолжении поста о погоде «Яндекс.Погода для сайта в деталях». Прочитав данный пост, я пришел к выводу, что тема еще актуальна, и хотел бы дополнить выше упомянутую статью своими наработками.

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

Ciklum PHP Speakers’ Corner в Минске, 22 августа

Время на прочтение2 мин
Количество просмотров2.2K
22 августа (пятница) в 18.30 Ciklum Minsk приглашает PHP-разработчиков на открытое мероприятие PHP Developers Speakers’ Corner!
Ciklum Speakers’ Corner — это особый формат открытых мероприятий, способ Ciklum поддерживать и развивать свободный обмен знаниями в различных технологиях и областях среди сотрудников компании и представителей IT-сообществ, а также это отличная возможность для разработчиков находить коллег с общими интересами и расширять свой профессиональный опыт и кругозор.
image
Читать дальше →

IQLab challenge: докажи, что ты лучший

Время на прочтение1 мин
Количество просмотров2.6K
Сегодня IQLab открывает регистрацию на один из самых больших PHP челленджей в Украине. Этот проект рассчитан на специалистов самого разного уровня и разного бэкграунда. Команда IQLab будет рада абсолютно всем участникам проекта. Это твоя возможность показать свои знания и доказать, что ты лучший.

#IQLab challenge
Читать дальше →

PRFRL — как устроен интерфейс аналитики

Время на прочтение3 мин
Количество просмотров2.7K
В этом посте хотелось бы рассказать больше про концепцию панели аналитики. Собственно именно она дает разработчикам уникальные возможности для поиска проблемных по производительности мест в коде.

PRFLR — это система аналитики, направленная на скорейшее обнаружения проблемных по производительности мест в работе приложений. Realtime и непосредственно на Production серверах.

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

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

Используйте поиск по хешу, а не обыск массива

Время на прочтение3 мин
Количество просмотров29K
Довольно-таки часто встречается задача: проверить, совпадает ли строка с другими строками из набора. Например, вам нужно проверить каждое слово из сообщения на форуме на предмет того, не содержится ли оно в списке запрещённых. Распространённое решение: создать массив со списком запрещённых слов, а затем с помощью функции in_array() делать проверку. Есть способы повысить производительность такого алгоритма.
Читать дальше →

Поддержка sha512 в wsse-authentication-bundle от Escape Studios, Symfony2

Время на прочтение6 мин
Количество просмотров3.2K
Недавно встала задача повышения безопасности при создании токена, а также поддержки sha512. Статья получилась узконаправленная, но я уверен, что сталкиваюсь с подобным не только я.

Для решения текущих задач при программировании API интернет-магазина на Symfony2 решил подружить FOSUserBundle и WSSEAuthenticationBundle c алгоритмом sha512 и вскоре выяснил, что для этого потребуется небольшая доработка. Об этом и пойдет речь в моей статье.
Читать дальше →

Еще раз о Security в Symfony2 подход user-resource-privilege

Время на прочтение5 мин
Количество просмотров9K
Не так давно взялся за Symfony2. Не смотря на то, что до этого имел достаточно богатый опыт общения с Zend1, барьер входа для меня оказался высоким. Вдоволь начитавшись у меня начало что-то получаться. Наибольшие затруднения вызвал вопрос разграничения прав доступа. Практически все мои поиски выводили меня на FOSUserBundle или обрывки информации о том, как можно расширить функционал модуля Security из стандартной поставки фреймворка. Каких-либо преимуществ для себя в громоздком FOSUserBundle я не обнаружил. Поэтому эта статья будет о том, как я допиливал Symfony2 Security под свои нужды. Цель была следующая: symfony2 + security + разграничение прав доступа на уровне объекта в зависимости от роли пользователя. В этой статье не будет ничего про наследование ролей и кумулятивные привилегии, информацию о которых вы, без труда, найдете сами. Схема прав в моем проекте: запрещено все, что не разрешено. Один пользователь имеет строго одну роль. Роль имеет доступ к различным ресурсам с различным набором привилегий. Разные роли могут иметь доступ к одним и тем же ресурсам с разными или равными наборами привилегий. Я не буду пытаться сделать код максимально абстрактным, а просто буду использовать фрагменты из своего проекта, связанные с функциональностью заказ-нарядов на обслуживание техники.
Читать дальше →

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

Фреймворк вашего следующего веб-приложения

Время на прочтение5 мин
Количество просмотров25K
Каждый раз когда стоит задача выбора фреймворка для написания нового проекта, мы (веб-разработчики) скорей всего выбираем то, что уже хорошо знаем и постоянно используем. Мир PHP фреймворков достаточно богат и самыми крупными игроками являются: CodeIgniter, Kohana, Symfony, Yii, Zend Framework. Но я хочу обратить ваше внимание на принципиально новый, а вернее принципиально новую ветку лучшего фреймворка, с которым мне доводилось иметь дело. Встречайте, Laravel 4!

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

SonataMediaBundle. Русская версия перевода файла xliff

Время на прочтение10 мин
Количество просмотров3.3K
Доброго времени суток хабровчане. Во время работы над админ частью одного русскоязычного ресурса, появилась необходимость, что бы вся админка была на русском языке. В самой SonataAdminBundle файлик такой есть, и это не вызвывает сложностей. Но как оказалось, подключенная к AdminBundle другой Сонатовский бандл, а именно SonataMediaBundle не обладает таким интерфейсом. Собственно появилось необходимость перевести его, так как не нашел в сети. Что из этого получилось? Прошу под кат.
Читать дальше →

Пошаговое руководство сохранения связанных данных Yii

Время на прочтение7 мин
Количество просмотров36K

Intro


С недавних пор, я начал изучать замечательный фрэймворк Yii. При разработке, я столкнулся с задачей сохранения данных из одной формы, в несколько таблиц. Погуглив, я не нашел вменяемого руководство, которое объясняет полный смысл этого сохранения. На официальном, русскоязычном сайте, я нашел короткую статью от Александра Макарова, но она, опять же в общих чертах демонстрирует «соль» этого метода.
Я решил написать эту статью, в стиле tutorial, чтобы дать новичкам возможность наглядно увидеть полный цикл CRUD при работе с несколькими моделями, а тем кто по-опытней, покритиковать это решение, и объяснить «как делать не надо».
Читать дальше

RESTful Api используя Zend framework 2

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

Небольшой гайд по созданию простейшего RESTful api с помощью Zend framework 2 (далее zf2).


Нам потребуется zf2 v2.3@dev, а так же Doctrine 2 ORM.

Итак, начнем с создания структуры директорий нашего api:

mkdir -pv zf2-api/{config/autoload,public,module/v1/{config,src/v1/{Controller,Service,Entities}}}


Загружаем композер
curl -sS https://getcomposer.org/installer | php

Так же нам потребуется создать composer.json с такими зависимостями и установить их.
"require": {
        "php": ">=5.4",
        "zendframework/zendframework": "2.*@dev",
        "doctrine/doctrine-orm-module" :"0.*"
    }

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

Чем забита ваша память или анализируем содержимое кеша XCache

Время на прочтение4 мин
Количество просмотров14K

Вас смущает это число? Меня тоже.

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

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

Несколько простых запросов вместо одного большого для загрузки связей в ORM

Время на прочтение2 мин
Количество просмотров8.8K
Сразу оговорюсь, это не обучающий пост и не провозглашение новой парадигмы )), скорее решение, к которому я пришел, и хочется его обсудить в широкой и честной дискуссии.
Теперь к сути, представьте, что есть некая ORM, написанная на PHP, в которой описана модель Posts, имеющая связи многие-ко-многим через промежуточные таблицы с другими моделями: Comments, Tags, Categories. Вопрос в том, каким способом лучше поднимать связанные данные, всё сразу или с отложенной загрузкой?
Читать дальше →

Пример круговой диаграммы в SVG средствами Raphael и PHP

Время на прочтение7 мин
Количество просмотров14K
В ходе разработки одного из наших проектов мы столкнулись с необходимостью отдавать в клиентском html большое количество графики. С точки зрения минимализации нагрузки на сервер, строить объёмную графику на стороне клиента — это единственное правильное решение. При поиске готовых и подходящих нам JS решений из этой области мы основательно подсели на JS библиотеку Raphael, которая позволяет легко прорисовывать векторную графику во всех актуальных на сегодня браузерах. Разобравшись в функционале и отладив несколько функций по созданию основных типов диаграмм, мы решили поделиться здесь своими наработками.

Пример круговой диаграммы в SVG средствами Raphael и PHP

Итак. Описанный ниже пример создаёт средствами Raphael и PHP круговую диаграмму в формате SVG, представленную на изображении. Мы постарались максимально подробно описать исходный код, чтобы помочь всем тем, кто самостоятельно разобраться в этом не нашёл сил или времени.
Читать дальше →