• Создание собственного вендорного бандла в Symfony2

    • Tutorial
    Часто возникает необходимость использовать одинаковый код в разных проектах. Чтобы не было повторения кода, такой код обычно помещают в библиотеку. В фреймворке Symfony2 весь код должен быть помещён в так называемые бандлы (bundle). Уже сейчас существует огромное количество бандлов, решающих совершенно разные задачи, но всё-таки часто возникает необходимость создания своего бандла, решающего рутинную задачу.

    Это может быть обычный бандл, находящийся в папке src, и тогда при необходимости использовать его в новом проекте нужно скопировать его в новый проект. Но в таком случае возникает проблема с обновлением кода, ведь, когда код доступен для изменения, то он будет изменён (особые извращенцы изменяют даже код в папке vendor). Для удобства процедуры использования своего кода в других проектах можно оформить бандл как внешний, вендорный бандл, и управлять им через composer наравне с остальными сторонними бандлами.

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

    Содержание:
    1. Создание нового бандла
    2. Добавление настроек в бандл
    3. Подготовка бандла к публикации
    4. Публикация бандла

    Будет рассмотрено создание бандла для управления статичными страницами сайта. Можно найти несколько готовых подобных бандлов, но они либо слишком простые, либо слишком сложные (типа SonataPageBundle). Уровень статьи — продвинутый новичок. Подразумевается, что читатель уже умеет создавать бандлы в проекте, а также пользоваться контроллерами и шаблонами.
    Читать дальше →
    • +14
    • 19.5k
    • 6
  • Реализация системы тегов в админке с бандлом SonataAdminBundle

    Многие пользуются бандлом SonataAdminBundle при разработке на Symfony2. Этот бандл позволяет в кратчайшие сроки создать CRUD-админку для сущностей Doctrine и Mongo. В частности, позволяет быстро и легко сделать странички для добавления сущностей, в том числе включающими связи Один-ко-Многим и Многие-ко-Многим. Вот с последним пунктом у меня и возникли проблемы. В статье я покажу решение, как можно организовать установку тегов для нескольких сущностей, задействуя всего одну промежуточную таблицу, с помощью бандла FPNTagBundle, и что пришлось сделать, чтобы этот бандл заработал в SonataAdmin. А вначале рассмотрим, как реализовать редактирование сущностей (в том числе с тегами) на простой SonataAdmin
    Читать дальше →
    • +10
    • 6.4k
    • 1
  • Обзор выделенных серверов Kimsufi и SoYouStart

    Год назад вышла статья, которая подвигла меня приобрести сервер в Kimsufi – это подразделение крупного французского хостера OVH, специализирующееся на дешёвых серверах, зачастую на старом железе (есть процессоры ’08-09-х годов). Сервер оказался неплохим, недорого стоил, и вообще мне всё понравилось. Примерно в то же время на хабре было несколько статей про Proxmox, и именно его я туда и поставил (благо что Proxmox был в стандартном выборе хостера при установке), чем весьма доволен. Но сегодняшняя статья не про это.

    После нескольких месяцев использования заказанного сервера, я порекомендовал Kimsufi своему другу, и с удивлением обнаружил, что, по обновлённому соглашению, пользоваться серверами могут только граждане Евросоюза.

    И вот, с нового года, OVH запустил новый сайт для продаж дешёвых выделенных серверов – SoYouStart.com, а также снова открыл возможность всем регистрироваться на Kimsufi.com, да к тому же, последний стал доступен на русском языке!

    Под катом – обзор новых предложений серверов от OVH –новый SoYouStart и обновлённый Kimsufi – выделенные серверы от 8 евро в месяц.
    Читать дальше →
  • Практикум AngularJS — разработка административной панели (часть 2)

      В первой части был реализован базовый функционал админки на javascript-фреймворке AngularJS — загрузка данных из бэкенда, добавление/изменение записей. Во второй части мы рассмотрим реализацию сортировки таблицы и разбитию по страницам, удаление записей.

      Читать дальше →
    • Практикум AngularJS — разработка административной панели

      При создании сайтов часто возникает задача создания админки для редактирования контента. Задача, в общем, тривиальная, но сделать удобную админку не так-то просто.

      Под удобством в первую очередь подразумевается возможность сортировки таблицы со списком материалов и работа без перезагрузки страницы. Если материалов в таблице становится много, то возникает задача разбивать её на страницы.

      Всем известный jQuery-плагин tablesorter с tablesorterPager-ом и менее известный, но гораздо более функциональный DataTables хороши, но обладают некоторыми недостатками. Главный из них — сложность динамического добавления новых строк в таблицу (после добавления строки в таблицу, новая строка потеряется при следующем вызове сортировки). tablesorter вообще не даёт средств для добавления строки в свой кэш, DataTables предоставляет широкое и функциональное API для управления внутренним представлением таблицы, но это API довольно многословно и не очень гибко.

      Хочу предоставить общественности реализацию админки на относительно новой javascript-фреймворке AngularJS. Будет создана страничка для редактирования списка вопросов, разбитых по категориям и отвечающим. В статье нет сравнения с другими подобными фреймворками, но нет и простого повторения официальной документации, я постараюсь поделиться своим опытом в использовании фреймворка и расскажу о нескольких интересных приёмах работы с ним.

      Сразу приведу, что получится в итоге (кликабельно):


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