Как стать автором
Обновить

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

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


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

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

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



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

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

Читать дальше →
Всего голосов 32: ↑20 и ↓12 +8
Комментарии 29

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

Время на прочтение 6 мин
Количество просмотров 7.3K
Symfony *
Перевод
Оглавление

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

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

Читать дальше →
Всего голосов 18: ↑14 и ↓4 +10
Комментарии 5

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

Время на прочтение 4 мин
Количество просмотров 4.2K
Symfony *
Перевод

Оглавление





До сих пор наше приложение было довольно простым, поскольку содержало только одну страницу.
Что бы немного все усложнить, добавим другую страницу, говорящую «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();

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

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

Время на прочтение 5 мин
Количество просмотров 6.1K
Symfony *
Перевод


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

<?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();

Читать дальше →
Всего голосов 14: ↑9 и ↓5 +4
Комментарии 3

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

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

Читать дальше →
Всего голосов 15: ↑12 и ↓3 +9
Комментарии 1

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

Время на прочтение 4 мин
Количество просмотров 4.6K
Symfony *
Перевод
В шестой части серии, мы научимся использовать компонент HttpKernel.


Читать дальше →
Всего голосов 16: ↑11 и ↓5 +6
Комментарии 1

Aleph PHP Framework

Время на прочтение 6 мин
Количество просмотров 4.9K
Разработка веб-сайтов *PHP *
Из песочницы

Итак, встречайте Aleph!


Новый микро-фрэймворк на PHP, по размеру и функционалу, которого уместно сравнение разве что только с медицинским скальпелем.

По умолчанию содержит всё необходимое для быстрого старта и написания приложений.

Причины, почему стоит обратить на него внимание:
  • Фрэймворк реально маленький. Обильно сдобренный phpDoc комментариями код занимает около 3000 строк;
  • Фреймворк является результатом более чем 6-ти летней профессиональной деятельности его авторов в области web-разработок;
  • Возможности фрэймворка позволяют использовать его как базу под практически любое приложение.

Причём Aleph — это пока что только ядро полноценного фреймворка, уже готового и давно используемого в реальных web-приложениях. Публикация остальных частей системы не за горами — вы просто влюбитесь в возможность проектировать и реализовывать приложения так, как если бы вы делали это в десктопном программировании (не надо пытаться представить это прям сейчас и тут же критиковать, дождитесь пока не увидите это своими глазами, и поймёте, что я имел в виду). Есть и ORM, и система контролов (именно контролов, типа тех, что в ASP.Net), валидаторы, кэширование, шаблонизация и всё то, что делает набор вспомогательных библиотек фреймворком.
Читать дальше →
Всего голосов 46: ↑23 и ↓23 0
Комментарии 58

Прикручиваем Doctrine 2 ORM к Silex

Время на прочтение 3 мин
Количество просмотров 16K
PHP *Symfony *Doctrine ORM *
Туториал
Недавно узнал о великолепном микро-фреймворке Silex, и примерно столь же недавно о модели ORM. Туториал будет полезен тем, кто хочет связать одно с другим.
Читать дальше →
Всего голосов 16: ↑9 и ↓7 +2
Комментарии 11