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

Symfony *

Свободный фреймворк, написанный на PHP5

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

Создаем собственный фреймворк на основе Symfony2. (Часть 5)

Время на прочтение4 мин
Количество просмотров4.2K
В пятой части серии мы поговорим о контроллерах.

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

Административный интерфейс с SonataAdminBundle

Время на прочтение10 мин
Количество просмотров50K
В базовой поставке Symfony 2 предусмотрен только минимальный функционал создания CRUD интерфейса. Для реализации административного интерфейса разработан ряд бандлов, в частности SonataAdminBundle.
Читать дальше →

Создаем собственный фреймворк на основе Symfony2. (Часть 4)

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


Прежде чем мы перейдем к сегодняшней теме, немного изменим наш фреймворк, так чтобы сделать шаблонизацию более удобной:

<?php
 
// example.com/web/front.php
 
require_once __DIR__.'/../src/autoload.php';
 
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
 
$request = Request::createFromGlobals();
 
$map = array(
    '/hello' => 'hello',
    '/bye'   => 'bye',
);
 
$path = $request->getPathInfo();
if (isset($map[$path])) {
    ob_start();
    extract($request->query->all(), EXTR_SKIP);
    include sprintf(__DIR__.'/../src/pages/%s.php', $map[$path]);
    $response = new Response(ob_get_clean());
} else {
    $response = new Response('Not Found', 404);
}
 
$response->send();

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

Создаем собственный фреймворк на основе Symfony2. (Часть 3)

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

Оглавление





До сих пор наше приложение было довольно простым, поскольку содержало только одну страницу.
Что бы немного все усложнить, добавим другую страницу, говорящую «goodbye»:
    <?php

    // framework/bye.php

    require_once __DIR__.'/autoload.php';

    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\HttpFoundation\Response;

    $request = Request::createFromGlobals();

    $response = new Response('Goodbye!');
    $response->send();

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

Создаем собственный фреймворк на основе Symfony2. (Часть 2)

Время на прочтение6 мин
Количество просмотров7.6K
Оглавление

Часть 1
Часть 2
Часть 3
Часть 4
Часть 5

Прежде чем мы углубимся в рефакторинг кода, я сначала хочу сделать шаг назад и взглянуть на то, почему вы хотели бы использовать фреймворк вместо того, чтобы писать ваше приложение на чистом PHP. Почему использовать фреймворк на самом деле хорошая идея, даже для простейшего фрагмента кода, и почему создание собственного фреймворка на основе компонентов Symfony2 лучше, чем создавать фреймворк с нуля.
  • Я не буду говорить об очевидных преимуществах использования фреймворков при работе с большими приложениями и с более чем несколькими разработчиками; в сети уже множество хороших ресурсов по этой теме.

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

Создаем собственный фреймворк на основе Symfony2. (Часть 1)

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


Symfony2 это набор автономных, многократно используемых библиотек, не завязанных на друг-друге, которые решают часто встречающиеся задачи в веб-разработке.

Вместо того что бы использовать низкоуровневые компоненты, вы можете использовать полномасштабный фреймворк который базируется на этих компонентах — Symfony2… Или, вы можете написать свой собственный. Эта серия статей о последнем.

Зачем вам нужен собственный фреймворк? (Why would you like to create your own framework?)



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

  1. Что бы изучить низкоуровневую архитектуру современных веб-ориентированных фреймворков, в частности Symfony2 и ее компонентов.
  2. Что бы создать фремворк «под ключ» для ваших специфических нужд. (Только прежде убедитесь, что ваши нужды действительно специфические)
  3. Для эксперимента ради удовольствия ( научился и забил )
  4. Для рефакторинга уже существующих приложений, которые нуждаются в более современных и устоявшихся практических решениях.
  5. Что бы доказать что вы это можете (… пусть и с небольшой помощью)

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

Объединенные формы и значения по умолчанию

Время на прочтение2 мин
Количество просмотров2.1K
Здравствуйте.

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

В Symfony 2, есть отличные инструменты по созданию форм из сущностей, а так же, что более интересно — объединенные формы.

Так вот, если вам понадобится установить в такую (объединенную) форму значения по умолчанию из сущностей (объектов), то вы (как и я) будете блуждать по просторам интернета, в поисках решения этой задачи, т.к. в документации этого, вроде бы, нет (во всяком случае, я не нашёл).
Читать дальше →

Sluggable, Timestampable и так далее в Symfony 2

Время на прочтение2 мин
Количество просмотров12K
В второй Symfony, мы можем присоеденить бихейверы (behaviours) к нашим моделям используя расширения от Doctrine. Один пакет (bundle), StofDoctrineExtensionsBundle, даёт возможность использовать следующие бихейверы: Sluggable, Translatable, Timestampable, Loggable и Tree.

Вышеописанные расширения позволяет превратить обычные ссылки в удобочитаемые (sluggable), осуществлять простую поддержку интернационализации (translatable), организовывать контроль версий (loggable), создавать и автоматически заполнять дату создания и обновления сущности (timestampable), и организовывать древовидную структуру хранения данных (tree).
Читать дальше →

Нестандартная аутентификация в проектах на Symfony 2.0

Время на прочтение17 мин
Количество просмотров17K
Цель данной статьи — рассказать об организации нестандартной аутентификации для проектов на базе Symfony 2.0.

Зачем это может понадобится?


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

Кастомные аннотации в Symfony 2

Время на прочтение3 мин
Количество просмотров12K
Symfony2 — это веб-фреймворк, который появился совсем недавно. Соответственно, разработчики просто не успели написать к нему стоящую документацию. В одном из текущих проектов используется MongoDB, и ACL прикрутить нему можно, нужно всего лишь написать свой ACL-провайдер. Но я решил пойти своим путём. Итак, вот что примерно у нас получится:
class DefaultController extends Controller
{

    /**
    * Dashboard page.
    * @Permissions(perm="dashboard_view")
    * @Route("/", name="ITEDashboardBundle_index")
    * @Template()
    * @return array
    */
    public function indexAction()
    {.......

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

Symfony2. Подводные камни кэширования

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

Прошло уже 3 месяца с тех пор, как я, в качестве хобби, начал писать проект на новом Symfony 2. Далее в статье я постараюсь поделиться с хабрасообществом проблемами, с которыми может столкнуться разработчик. Статья ориентирована на людей уже знакомых с архитектурой Symfony и Doctrine.
Читать дальше →

Symfony2\SecurityBundle

Время на прочтение14 мин
Количество просмотров41K
Аутентификация и Авторизация Автор рассказывает об устройстве бандла Security (на мой взгляд, самого трудного в понимании для symfony-новичков) и разбирает пример его применения. Статья будет особенно полезна для тех, кто желает знать, как работает их инструмент: Symfony2 Security в общем и FOSUserBundle в частности — однако не подходит для первого знакомства с фреймворком, поскольку требует знания некоторых из его компонент.
Статья была опубликована 21 марта 2011 года, когда ещё не вышла финальная версия symfony2.0, однако принципы работы бандла не изменились.

Оригинальная статья — «Symfony2 Blog Application Tutorial Part V: Intro to Security» — часть цикла обучающих статей на примере создания блога.
Есть прямое продолжение/дополнение статьи — «Symfony2 Blog Application Tutorial Part V-2: Testing Secure Pages», где даётся пример тестирования «закрытых» частей приложения.


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

Конференция Symfony Camp UA 2011

Время на прочтение1 мин
Количество просмотров1.4K
Конференция Symfony Camp UA 2011

Конференция Symfony Camp UA 2011 посвящена разработке web-приложений с использованием PHP Framework Symfony. Основная тема конференции — это новая версия фреймворка Symfony 2. Это третья по счету конференция, которая состоится 29 октября 2011 года в Киеве.

Для участия необходимо пройти регистрацию. Конференция Бесплатная!


Программа конференции еще формируется. Все желающие выступить с докладом на Symfony Camp UA могут подать заявку на сайте 2011.symfonycamp.org.ua.

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

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

Создание CRUD приложения на Symfony 2, часть 2

Время на прочтение6 мин
Количество просмотров8.1K
Продолжение вводной статьи по Symfony 2. В первой части было описан процесс модификации формы редактирования записей, во второй части будем модифицировать интерфейс списка записей. В заготовке шаблона и контроллера списка записей, которую генерирует команда doctrine:generate:crud как минимум не хватает формы поиска записей и постраничной навигации.
Читать дальше →

Создание CRUD приложения на Symfony 2

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

Symfony 2.0


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

Знакомство с Symfony 2

Время на прочтение7 мин
Количество просмотров101K
Выход Symfony 2 показался мне достаточно веской причиной чтобы наконец-то найти время и посмотреть что же из себя представляет один из самых популярных PHP-фреймворков в мире. Своё знакомство с ним я и описал в данной заметке. Так как это мой первый опыт работы с Symfony буду рад если заметите какие-то ляпы или недочёты и сообщите мне о них.
Читать дальше →

Symfony2 Book в pdf формате

Время на прочтение1 мин
Количество просмотров14K
Добрый день.
Мне не удалось найти книгу по Symfony2 в pdf формате. И я решил восполнить этот пробел и в свободное время перевести Symfony2 Book в pdf формат. Хочу поделиться со всеми любителями Symfony этой книгой. Критика и предложения приветствуются т.к. подобной работой занялся в первый раз. Надеюсь, книга будет полезной.
Symfony2 The Book.pdf

Вышла финальная версия Symfony2. Ура!

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

Оставив позади 12 превью релизов, 5 бета версий и 6 релиз кандидатов, наконец-то вышла финальная версия Symfony2 — претендента на звание самого лучшего на сегодня фреймворка, написанного на языке PHP.

На данный момент, Symfony2 — самый популярный проект на Github в разделе PHP и занимает 12 место по популярности на всей платформе Github.

Всего лишь за 4 месяца, еще до выхода финальной версии, только на одном Github было создано больше 400 бандлов (расширений) для Symfony2. Количество разработчиков на момент релиза составило около 250 и продолжает расти.

Поздравляю всех фанатов Symfony2 с таким значительным событием и желаю всем, кто взял участие в разработке, не останавливаться и продолжать радовать PHP-мир качественными продуктами!

Новость на сайте Symfony2

Symfony2: Выпуск финальной версии (Fabien Potencier – 22 июля 2011)

Время на прочтение2 мин
Количество просмотров1K
финальный релиз Symfony 2.0Мы уже готовы выпустить финальный релиз Symfony 2.0. В течение последних пары недель мы сделали несколько существенных изменений, и поэтому публикуем еще один релиз-кандидат (RC5) сегодня и ждем неделю (до 28 июля) перед выпуском финального релиза.
Вы можете просмотреть файл UPDATE чтобы ознакомиться с последними изменениями.
Для обновления Symfony Standard Edition приложения необходимо обновить файлы deps и deps.lock.

Затем нужно выполнить скрипт обновления вендоров:

./bin/vendors install

Не забудьте очистьть кеш после обновления вендоров:

php ./app/console cache:clear

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

Использование Zend GData в Symfony2-проекте

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


Ведущий разработчик фреймворка Symfony — Фабьен Потенсьер (Fabien Potencier) в 2009-м году выступил на Zend/PHP Conference с докладом о извлечении выгоды в совместном использовании Symfony 1.3/1.4 и Zend Framework. Основные тезисы его речи доступны в презентации, опубликованной на его персональном сайте [1].

Как известно, Symfony2 — это практически новый фреймворк, созданный с использованием новейших возможностей языка PHP. На данный момент разработка перешла в RC-цикл, и всё больше разработчиков, имеющих опыт работы на первой ветке Symfony (да и не только они), смотрят в сторону нового флагмана. Но, даже несмотря на значительное количество включенных в стандартное издание компонентов, Symfony2 не покрывает все нужды веб-разработчика, поэтому, рано или поздно, встает вопрос о подключении внешних библиотек.

Очевидно, что в этом свете объемный комплект библиотек Zend (Gdata, Search_Lucene, Pdf и т. д.) нельзя обойти стороной. В данном посте мной будет рассмотрен процесс интеграции Symfony2 и Zend на примере Zend Gdata — библиотеки для взаимодействия с Google Data API [2].

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