Development

Documentation/ru_RU/book/1.1/01-Introducing-Symfony (diff)

You must first sign up to be able to contribute.

Changes between Version 1 and Version 2 of Documentation/ru_RU/book/1.1/01-Introducing-Symfony

Show
Ignore:
Author:
kmike (IP: 217.114.239.22)
Timestamp:
07/17/08 21:05:09 (9 years ago)
Comment:

запятые

Legend:

Unmodified
Added
Removed
Modified
  • Documentation/ru_RU/book/1.1/01-Introducing-Symfony

    v1 v2  
    1111------------------ 
    1212 
    13 Symfony — фреймворк с открытым кодом, полностью написанный на PHP5. Использование фреймворка позволяет создавать более структурированный, читаемый код и упрощает программирование хотя бы потому, что набор сложных операций часто можно заменить одной строчкой кода. Symfony основан на идее MVC (MVC pattern) и создан для упрощения разработки веб-приложений. Фреймворк включает в себя множество инструментов и классов, призванных максимально сократить время разработки сложного веб-приложения. Также symfony автоматизирует наиболее популярные и частые задачи, что позволяет разработчику уделить больше внимания особенностям данного конкретного проекта. Благодаря вышеперечисленным преимуществам, вам не потребуется изобретать колесо, каждый раз когда вы приступите к разработке нового приложения. 
     13Symfony — фреймворк с открытым кодом, полностью написанный на PHP5. Использование фреймворка позволяет создавать более структурированный, читаемый код и упрощает программирование хотя бы потому, что набор сложных операций часто можно заменить одной строчкой кода. Symfony основан на идее MVC (MVC pattern) и создан для упрощения разработки веб-приложений. Фреймворк включает в себя множество инструментов и классов, призванных максимально сократить время разработки сложного веб-приложения. Также symfony автоматизирует наиболее популярные и частые задачи, что позволяет разработчику уделить больше внимания особенностям данного конкретного проекта. Благодаря вышеперечисленным преимуществам, вам не потребуется изобретать колесо каждый раз, когда вы приступаете к разработке нового приложения. 
    1414 
    1515Фреймворк использовался и хорошо себя зарекомендовал во многих проектах (На текущий момент (''2006-10-28'') на symfony построена бета-версия '''Yahoo! Bookmarks'''), в том числе в сложных приложениях е-коммерции. Symfony совместим со многими базами данных (включая MySQL, PostgreSQL, Oracle, и Microsoft SQL Server) и может быть установлен и на *nix и на Windows. Перечислим возможности фреймворка подробнее. 
    3434 
    3535  * Встроенный слой (layer) для поддержки многоязычности приложения позволяет переводить интерфейс и данные. 
    36   * HTML-страницы строятся из шаблонов (template) и главных шаблонов (layout — общие шаблоны для всех модулей данного приложения). Шаблоны можно делать не обладая никакими знаниями о фреймворке. Helpers (''англ.'' помощники) — позволяют делать код в шаблонах более читаемым, помещая большие порции кода в одну строчку с вызовом функции. 
     36  * HTML-страницы строятся из шаблонов (template) и главных шаблонов (layout — общие шаблоны для всех модулей данного приложения). Шаблоны можно делать, не обладая никакими знаниями о фреймворке. Helpers (''англ.'' помощники) — позволяют делать код в шаблонах более читаемым, помещая большие порции кода в одну строчку с вызовом функции. 
    3737  * Формы в symfony поддерживают автоматическую валидацию. 
    3838  * Приложение защищено от атак путем ввода искаженной информации. 
    3939  * Возможности кэширования уменьшают нагрузку на сервер и увеличивают быстродействие. 
    4040  * Спецальные средства упрощают управление безопасностью и разграничением прав доступа пользователей. 
    41   * Красивые URL делают строку адреса полезной для поисковых машин, и позволяют использовать ее как часть интерфейса. 
     41  * Красивые URL делают строку адреса полезной для поисковых машин и позволяют использовать ее как часть интерфейса. 
    4242  * Встроенная поддержка e-mail и средства управления API позволяют веб-приложениям переступать через классические  взаимодействия с браузером 
    43   * Есть удобные списки, с автоматизированным пейджингом, сортировкой и фильтрацией. 
     43  * Есть удобные списки с автоматизированным пейджингом, сортировкой и фильтрацией. 
    4444  * Благодаря специальным helper'ам легко создавать интерфейсы на базе AJAX, поддерживающие различные браузеры 
    4545 
    7272------------------ 
    7373 
    74 После того как был запущен сайт symfony (http://www.symfony-project.com/), многие разработчики скачивали и устанавливали фреймворк, создавали свои первые проекты на symfony. Дело начало набирать обороты. В это время фреймворки для разработки веб-приложений набирали популярность, и потребность в полнофункциональном PHP фреймворке была высока. Symfony предлагал подробную документацию и замечательные решения с высоким качеством кода — два основных преимущества фреймворка. Вскоре появились помощники, которые предлагали различные патчи и улучшения, вычитывали документацию и всячески помогали развитию проекта. Открытый репозиторий с кодом и система ticket'ов (баг-трекер) дали возможность помогать проекту всем желающим. Symfony всегда рад волонтерам. Фабьен продолжает активно разрабатывать фреймворк, и гарантирует качество кода в репозитории. 
    75  
    76 Форум, открытая переписка (mailing lists), и канал IRC чата обеспечивают поддержку пользователей. В среднем на любой вопрос приходится четыре ответа. Каждый день увеличивается число пользователей symfony. Wiki и code snippets (куски кода которые могут быть полезными) пополняются пользователями фреймворка. Количество приложений, разработанных на symfony, растет в среднем на 5 штук в день. Развитое сообщество — третье преимущество symfony. 
     74После того, как был запущен сайт symfony (http://www.symfony-project.com/), многие разработчики скачивали и устанавливали фреймворк, создавали свои первые проекты на symfony. Дело начало набирать обороты. В это время фреймворки для разработки веб-приложений набирали популярность, и потребность в полнофункциональном PHP фреймворке была высока. Symfony предлагал подробную документацию и замечательные решения с высоким качеством кода — два основных преимущества фреймворка. Вскоре появились помощники, которые предлагали различные патчи и улучшения, вычитывали документацию и всячески помогали развитию проекта. Открытый репозиторий с кодом и система ticket'ов (баг-трекер) дали возможность помогать проекту всем желающим. Symfony всегда рад волонтерам. Фабьен продолжает активно разрабатывать фреймворк и гарантирует качество кода в репозитории. 
     75 
     76Форум, открытая переписка (mailing lists), и канал IRC чата обеспечивают поддержку пользователей. В среднем на любой вопрос приходится четыре ответа. Каждый день увеличивается число пользователей symfony. Wiki и code snippets (куски кода, которые могут быть полезными) пополняются пользователями фреймворка. Количество приложений, разработанных на symfony, растет в среднем на 5 штук в день. Развитое сообщество — третье преимущество symfony. 
    7777 
    7878Symfony подойдет мне? 
    7979--------------------- 
    8080 
    81 Независимо от того, эксперт вы в PHP5 или новичок, вы сможете использовать symfony. Основой определяющий фактор, делать это или нет — масштабы вашего проекта. 
    82  
    83 Если вы хотите создать простой сайт с пятью-десятью страницами, доступом к базе данных, и вам не нужно обеспечить сайт документацией и быть уверенным в его надежности, тогда лучше не использовать symfony. Вы мало выиграйте от использования фреймворка, и возможно объектная ориентированность кода и идея MVC только понизят скорость разработки. Отметим, что symfony не оптимизирован для работы на серверах, где PHP-скрипты могут быть запущены только в режиме CGI. 
    84  
    85 С другой стороны, для разработки серьезного веб-приложения со сложной логикой голого PHP будет недостаточно. Если вы планируете поддерживать и расширять приложение в будущем и получить неперегруженный и читаемый код, если вы хотите разрабатывать современные интерфейсы с использованием AJAX, и при этом не писать сотни строчек JavaScript, если вы хотите сделать свою работу более легкой и быстрой, тогда symfony вам подойдет. 
     81Независимо от того, эксперт вы в PHP5 или новичок, вы сможете использовать symfony. Основой определяющий фактор, делать это или нет, — масштабы вашего проекта. 
     82 
     83Если вы хотите создать простой сайт с пятью-десятью страницами, доступом к базе данных, и вам не нужно обеспечить сайт документацией и быть уверенным в его надежности, тогда лучше не использовать symfony. Вы мало выиграйте от использования фреймворка, и, возможно, объектная ориентированность кода и идея MVC только понизят скорость разработки. Отметим, что symfony не оптимизирован для работы на серверах, где PHP-скрипты могут быть запущены только в режиме CGI. 
     84 
     85С другой стороны, для разработки серьезного веб-приложения со сложной логикой "голого" PHP будет недостаточно. Если вы планируете поддерживать и расширять приложение в будущем и получить неперегруженный и читаемый код, если вы хотите разрабатывать современные интерфейсы с использованием AJAX, и при этом не писать сотни строчек JavaScript, если вы хотите сделать свою работу более легкой и быстрой, тогда symfony вам подойдет. 
    8686 
    8787Если вы профессиональный веб-разработчик и ищите развитый PHP-фреймворк с хорошей документацией и большим сообществом (community), то symfony — для вас. 
    136136Установка через PEAR — наиболее профессиональный путь установки библиотек. Symfony рекомендует использовать PEAR для того, чтобы устанавливаемые пакеты были общими для всех ваших проектов. Plugin'ы для фреймворка — это специально сконфигурированные PEAR-пакеты. Сам фреймворк также доступен как PEAR-пакет. 
    137137 
    138 Вам не нужно в совершенстве знать устройство PEAR для использования symfony. Главное — понимать что это и установить его на свой компьютер. Вы можете проверить, установлен ли PEAR, c помощью команды: 
     138Вам не нужно в совершенстве знать устройство PEAR для использования symfony. Главное — понимать, что это, и установить его на свой компьютер. Вы можете проверить, установлен ли PEAR, c помощью команды: 
    139139 
    140140    > pear info pear 
    188188>rapid application development переводится как «быстрая разработка приложений» 
    189189 
    190 Веб-программирование долгое время было скучной и медленной работой. Следуя стратегии полных циклов разработки, к работе не приступали прежде чем не был сформирован список требований, не нарисовано множество диаграмм (Unified Modeling Language (UML) diagrams) и не написаны тонны документации. Это было обусловлено скоростью разработки (нужно написать, скомпилировать и бог знает что еще сделать прежде чем увидеть программу в действии), и конечно же клиентами, которые были более рассудительны и не меняли постоянно свои требования. 
    191  
    192 Сегодня, когда все процессы в бизнесе очень быстрые, клиенты склонны постоянно менять свои требования по ходу разработки. Конечно же, они ожидают, что разработчики быстро адаптируются к новым требованиям и изменят проект. К счастью, использование таких скриптовых языков, как Perl и PHP позволяют применить другие стратегии разработки. Например rapid application development (RAD) (синоним — agile development). 
     190Веб-программирование долгое время было скучной и медленной работой. Следуя стратегии полных циклов разработки, к работе не приступали, прежде чем не был сформирован список требований, не нарисовано множество диаграмм (Unified Modeling Language (UML) diagrams) и не написаны тонны документации. Это было обусловлено скоростью разработки (нужно написать, скомпилировать и бог знает что еще сделать прежде чем увидеть программу в действии), и, конечно же, клиентами, которые были более рассудительны и не меняли постоянно свои требования. 
     191 
     192Сегодня, когда все процессы в бизнесе очень быстрые, клиенты склонны постоянно менять свои требования по ходу разработки. Конечно же, они ожидают, что разработчики быстро адаптируются к новым требованиям и изменят проект. К счастью, использование таких скриптовых языков, как Perl и PHP, позволяют применить другие стратегии разработки. Например rapid application development (RAD) (синоним — agile development). 
    193193 
    194194Одна из идей этой стратегии — начинать разработку как можно быстрее, чтобы клиент видел уже рабочую заготовку и корректировал работу в нужном направлении. То есть процесс разработки носит итеративный характер: как можно быстрее сделали, выслушали пожелания заказчика и опять за работу. Так, шаг за шагом, следуя стратегии коротких циклов разработки, проект приближается к идеалу клиента. 
    195195 
    196 Основные принципы работы согласно RAD следующие: разработчик не должен думать "в перспективу", когда решает какую-то подзадачу (например, добавляет какой-то функционал). Решение должно быть самое простое из возможных (принцип KISS: Keep It Simple, Stupid.  ''англ.'' "делай просто и глупо"). Когда, при следующей итерации, требования поменяются, код нужно будет частично переписать. Это часто случается по ходу разработки. Код перемещают в другие файлы, туда где им место согласно их сущности (например, все операции с базой данных лежат в одном месте). Повторяющийся код переносится в одно место, и заменяется на вызовы функций или методов. (принцип DRY: Don't Repeat Yourself.  ''англ.'' "не повторяй себя"). Этот процесc реорганизации кода называется рефакторинг (refactoring). 
     196Основные принципы работы согласно RAD следующие: разработчик не должен думать "в перспективу", когда решает какую-то подзадачу (например, добавляет какой-то функционал). Решение должно быть самое простое из возможных (принцип KISS: Keep It Simple, Stupid.  ''англ.'' "делай просто и глупо"). Когда, при следующей итерации, требования поменяются, код нужно будет частично переписать. Это часто случается по ходу разработки. Код перемещают в другие файлы, туда, где им место согласно их сущности (например, все операции с базой данных лежат в одном месте). Повторяющийся код переносится в одно место и заменяется на вызовы функций или методов. (принцип DRY: Don't Repeat Yourself.  ''англ.'' "не повторяй себя"). Этот процесc реорганизации кода называется рефакторинг (refactoring). 
    197197 
    198198Для того, чтобы быть уверенным, что всё приложение по-прежнему работает правильно, несмотря на постоянные изменения, необходимо проводить юнит-тестирование. Юнит-тестирование — это отличный способ быть уверенным в том, что всё работает четко после изменений в коде. Некоторые стратегии разработки гласят, что нужно писать тесты прежде чем писать код приложения, и это называется test-driven development (TDD).