Development

Documentation/ru_RU/exploring_Symfonys_code (diff)

You must first sign up to be able to contribute.

Changes between Version 13 and Version 14 of Documentation/ru_RU/exploring_Symfonys_code

Show
Ignore:
Author:
postman (IP: 194.187.128.113)
Timestamp:
04/25/07 22:50:38 (11 years ago)
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Documentation/ru_RU/exploring_Symfonys_code

    v13 v14  
    574574''Таблица 2-1 - Директории проекта'' 
    575575 
    576 #| 
    577 || **Директория** | **Описание** || 
    578 || apps/ | Содержит по одной директории на каждое приложение (обычно, frontend и backend — пользовательская часть и админпанель соответственно). || 
    579 || batch/ | Содержит batch скрипты для вызова из командной строки, или программу планировщик для запуска batch процессов.  || 
    580 || cache/ | Хранит кэшированные версии настроек, и (если вы активируйте эту возможность) кэшированную версию действий (actions) и шаблонов (templates) проекта. Механизм кэширования (подробно описан в Главе 12) использует эти файлы для того чтоб ускорить ответ на запрос к серверу. Любое приложение будет иметь тут свою поддиректорию содержащую предварительно обработанные PHP и HTML файлы.|| 
    581 || config/ | Содержит базовую конфигурацию проекта. || 
    582 || data/ | Тут можно хранить файлы с данными проекта. Например, схема базы данных, дамп базы, или даже базу SQLite.|| 
    583 || doc/ | Содержит документацию проекта, вашу документацию и документацию созданную с помощью PHPdoc. || 
    584 || lib/ | Директория предназначена для сторонних классов и библиотек. Сюда можно добавить свои библиотеки необходимые для нескольких приложений вашего проекта. Поддиректория model/ содержит объектную модель проекта (подробнее в Главе 8).|| 
    585 || log/ | Содержит журналы событий (логи), которые создает symfony. Также может содержать логи веб сервера, базы данных, или другие журналы любой части проекта. Symfony создает по одному журналу событий на каждое приложение и на каждый режим (environment). Подробней о журналах событий в Главе 16. || 
    586 || plugins/ | Содержит установленные плагины (plug-in). Подробней о плагинах в главе 17. || 
    587 || test/ | Содержит юнит тесты и функциональные тесты, написанные на PHP и совместимые с тестирующим фреймворком symfony (подробней в Главе 15). Во время создания проекта, symfony автоматически добавляет заглушки с несколькими базовыми тестами. || 
    588 || web/ | На эту директорию должен указывать DocumentRoot веб сервера. Только файлы размещенные в web/ доступны из Интернета.|| 
    589 |# 
     576{{{ 
     577#!html 
     578<table> 
     579<thead> 
     580<tr> 
     581  <th><strong>Директория</strong></th> 
     582  <th align="left"><strong>Описание</strong></th> 
     583</tr> 
     584</thead> 
     585<tbody> 
     586<tr> 
     587  <td><code>apps/</code></td> 
     588 
     589  <td>Содержит по одной директории на каждое приложение (обычно, frontend и backend — пользовательская часть и админпанель соответственно).</td> 
     590</tr> 
     591<tr> 
     592  <td><code>batch/</code></td> 
     593  <td>Содержит batch скрипты для вызова из командной строки, или программу планировщик для запуска batch процессов.</td> 
     594 
     595</tr> 
     596<tr> 
     597  <td><code>cache/</code></td> 
     598  <td>Хранит кэшированные версии настроек, и (если вы активируйте эту возможность) кэшированную версию действий (actions) и шаблонов (templates) проекта. Механизм кэширования (подробно описан в Главе 12) использует эти файлы для того чтоб ускорить ответ на запрос к серверу. Любое приложение будет иметь тут свою поддиректорию содержащую предварительно обработанные PHP и HTML файлы.</td> 
     599</tr> 
     600<tr> 
     601  <td><code>config/</code></td> 
     602  <td>Содержит базовую конфигурацию проекта.</td> 
     603</tr> 
     604 
     605<tr> 
     606  <td><code>data/</code></td> 
     607  <td>Тут можно хранить файлы с данными проекта. Например, схема базы данных, дамп базы, или даже базу SQLite.</td> 
     608</tr> 
     609<tr> 
     610  <td><code>doc/</code></td> 
     611  <td>Содержит документацию проекта, вашу документацию и документацию созданную с помощью PHPdoc.</td> 
     612</tr> 
     613<tr> 
     614 
     615  <td><code>lib/</code></td> 
     616  <td>Директория предназначена для сторонних классов и библиотек. Сюда можно добавить свои библиотеки необходимые для нескольких приложений вашего проекта. Поддиректория model/ содержит объектную модель проекта (подробнее в Главе 8).</td> 
     617</tr> 
     618<tr> 
     619  <td><code>log/</code></td> 
     620  <td>Содержит журналы событий (логи), которые создает symfony. Также может содержать логи веб сервера, базы данных, или другие журналы любой части проекта. Symfony создает по одному журналу событий на каждое приложение и на каждый режим (environment). Подробней о журналах событий в Главе 16.</td> 
     621 
     622</tr> 
     623<tr> 
     624  <td><code>plugins/</code></td> 
     625  <td>Содержит установленные плагины (plug-in). Подробней о плагинах в главе 17.</td> 
     626</tr> 
     627<tr> 
     628  <td><code>test/</code></td> 
     629  <td>Содержит юнит тесты и функциональные тесты, написанные на PHP и совместимые с тестирующим фреймворком symfony (подробней в Главе 15). Во время создания проекта, symfony автоматически добавляет заглушки с несколькими базовыми тестами.</td> 
     630</tr> 
     631 
     632<tr> 
     633  <td><code>web/</code></td> 
     634  <td>На эту директорию должен указывать DocumentRoot веб сервера. Только файлы размещенные в web/ доступны из Интернета.</td> 
     635</tr> 
     636</tbody> 
     637</table> 
     638}}} 
    590639 
    591640{{{ 
    621670 
    622671''Таблица 2-2 - описывает предназначение поддиректорий приложения'' 
    623 #| 
    624 || **Директория** | **Описание** || 
    625 || config/ | Содержит множество конфигурационных YAML файлов. Тут содержатся все настройки приложения, не считая параметров заданных по умолчанию, которые находятся в настойках фреймворка. Отметим, что используя YAML файлы директории config/, можно заменить значения параметров заданных по умолчанию. Вы узнайте больше о настройке приложения в Главе 5.|| 
    626 || i18n/ | Содержит файлы для локализации (internationalization) приложения — в основном файлы интерфейсного перевода (interface translation files). Эта директория не понадобится, если для локализации вы используйте базу данных. Глава 13 посвящена локализации.|| 
    627 || lib/ | Здесь хранятся классы и библиотеки необходимые только данному приложению.|| 
    628 || modules/ | Содержит модули (modules) приложения. || 
    629 || templates/ | Содержит главные шаблоны приложения, которые являются общими для всех модулей. По умолчанию в директории находится файл layout.php — основной главный шаблон (layout), в который вставляются шаблоны модулей.|| 
    630 |# 
     672{{{ 
     673#!html 
     674<table> 
     675<thead> 
     676<tr> 
     677  <th><strong>Директория</strong></th> 
     678  <th align="left"><strong>Описание</strong></th> 
     679</tr> 
     680</thead> 
     681<tbody> 
     682<tr> 
     683  <td><code>config/</code></td> 
     684  <td>Содержит множество конфигурационных YAML файлов. Тут содержатся все настройки приложения, не считая параметров заданных по умолчанию, которые находятся в настойках фреймворка. Отметим, что используя YAML файлы директории config/, можно заменить значения параметров заданных по умолчанию. Вы узнайте больше о настройке приложения в Главе 5.</td> 
     685</tr> 
     686<tr> 
     687  <td><code>i18n/</code></td> 
     688  <td>Содержит файлы для локализации (internationalization) приложения — в основном файлы интерфейсного перевода (interface translation files). Эта директория не понадобится, если для локализации вы используйте базу данных. Глава 13 посвящена локализации.</td> 
     689 
     690</tr> 
     691<tr> 
     692  <td><code>lib/</code></td> 
     693  <td>Здесь хранятся классы и библиотеки необходимые только данному приложению.</td> 
     694</tr> 
     695<tr> 
     696  <td><code>modules/</code></td> 
     697  <td>Содержит модули (modules) приложения.</td> 
     698</tr> 
     699 
     700<tr> 
     701  <td><code>templates/</code></td> 
     702  <td>Содержит главные шаблоны приложения, которые являются общими для всех модулей. По умолчанию в директории находится файл layout.php — основной главный шаблон (layout), в который вставляются шаблоны модулей.</td> 
     703</tr> 
     704</tbody> 
     705</table> 
     706}}} 
    631707 
    632708{{{ 
    661737 
    662738Таблица 2-3 описывает директории модуля. 
     739 
    663740  
    664741''Table 2-3 – Директории модуля'' 
    665 #| 
    666 || **Директория** | **Описание** || 
    667 || actions/ | Обычно содержит единственный файл action.class.php, в котором хранятся все действия (actions) данного модуля. Можно хранить разные действия в разных файлах. || 
    668 || config/ | Содержит конфигурационные файлы модуля. || 
    669 || lib/ | Здесь хранятся классы и библиотеки индивидуальные для модуля. || 
    670 || templates/ | Содержит шаблоны, каждый из них соответствует какому-то действию (action). При инициализации модуля автоматически создается шаблон по умолчанию (indexSuccess.php). || 
    671 || validate/ | В директории содержатся конфигурационные файлы, используемые для валидации форм (подробней в Главе 10). || 
    672 |# 
     742{{{ 
     743#!html 
     744<table> 
     745<thead> 
     746<tr> 
     747  <th><strong>Директория</strong></th> 
     748  <th align="left"><strong>Описание</strong></th> 
     749</tr></thead> 
     750<tbody> 
     751<tr> 
     752  <td><code>actions/</code></td> 
     753  <td>Обычно содержит единственный файл action.class.php, в котором хранятся все действия (actions) данного модуля. Можно хранить разные действия в разных файлах.</td> 
     754</tr> 
     755<tr> 
     756  <td><code>config/</code></td> 
     757  <td>Содержит конфигурационные файлы модуля.</td> 
     758</tr> 
     759<tr> 
     760  <td><code>lib/</code></td> 
     761  <td>Здесь хранятся классы и библиотеки индивидуальные для модуля.</td> 
     762</tr> 
     763<tr> 
     764  <td><code>templates/</code></td> 
     765  <td>Содержит шаблоны, каждый из них соответствует какому-то действию (action). При инициализации модуля автоматически создается шаблон по умолчанию (indexSuccess.php).</td> 
     766 
     767</tr> 
     768<tr> 
     769  <td><code>validate/</code></td> 
     770  <td>В директории содержатся конфигурационные файлы, используемые для валидации форм (подробней в Главе 10).</td> 
     771</tr> 
     772</tbody> 
     773</table> 
     774}}} 
    673775 
    674776{{{ 
    695797 
    696798''Таблица 2-4 – Типичные поддиректории web/ '' 
    697 #| 
    698 || **Директория** | **Описание** || 
    699 || css/ | Содержит .css таблицы стилей. || 
    700 || images/ | Здесь хранятся изображения в форматах .jpg, .png, и .gif. || 
    701 || js/ | Директория для .js файлов. || 
    702 || uploads/ | Папка предназначена для загружаемых пользователями файлов. Зачастую в директории uploads/ хранятся изображения. Но не стоит путать ее с images/. Благодаря разделению на uploads/ и images/, синхронизация рабочего сервера (development server) и сервера на котором реально стоит проект (production server) не затрагивает изображения загруженные пользователями. || 
    703 |# 
     799{{{ 
     800#!html 
     801<table> 
     802<thead> 
     803<tr> 
     804  <th><strong>Директория</strong></th> 
     805  <th align="left"><strong>Описание</strong></th> 
     806</tr> 
     807</thead> 
     808 
     809<tbody> 
     810<tr> 
     811  <td><code>css/</code></td> 
     812  <td>Содержит .css таблицы стилей.</td> 
     813</tr> 
     814<tr> 
     815  <td><code>images/</code></td> 
     816  <td>Здесь хранятся изображения в форматах .jpg, .png, и .gif.</td> 
     817 
     818</tr> 
     819<tr> 
     820  <td><code>js/</code></td> 
     821  <td>Директория для .js файлов.</td> 
     822</tr> 
     823<tr> 
     824  <td><code>uploads/</code></td> 
     825  <td>Папка предназначена для загружаемых пользователями файлов. Зачастую в директории uploads/ хранятся изображения. Но не стоит путать ее с images/. Благодаря разделению на uploads/ и images/, синхронизация рабочего сервера (development server) и сервера на котором реально стоит проект (production server) не затрагивает изображения загруженные пользователями.</td> 
     826</tr> 
     827</tbody> 
     828</table> 
     829}}} 
    704830 
    705831Настоятельно рекомендуется пользоваться родной файловой структурой, но ее можно изменить под ваши требования, например для запуска проекта на сервере не допускающем такое дерево директорий и организацию кода. Подробней об изменении файловой структуры проекта рассказывается в Главе 19. 
    773899{{{ 
    774900#!php 
     901<?php 
    775902 
    776903$response->setParameter('foo', 'bar1'); 
    781908 => 'bar2' 
    782909 
    783  
     910?> 
    784911}}} 
    785912 
    817944{{{ 
    818945#!php 
     946<?php 
    819947 
    820948// Вместо констант PHP, 
    825953echo sfConfig::get('sf_foo'); 
    826954 
     955?> 
    827956}}} 
    828957 
    843972}}} 
    844973 
    845 Но в больших проектах со множеством классов и глубокой структурой директорий, подключение классов и написание путей к нужным файлам занимает много времени. Благодаря функции __autoload() (или же функции spl_autoload_register()), symfony делает команду include() ненужной. Можно писать просто: 
     974Но в больших проектах со множеством классов и глубокой структурой директорий, подключение классов и написание путей к нужным файлам занимает много времени. Благодаря функции {{{__autoload()}}} (или же функции spl_autoload_register()), symfony делает команду include() ненужной. Можно писать просто: 
    846975 
    847976{{{ 
    854983}}} 
    855984 
    856 Symfony будет искать класс MyClass во всех .php файлах, которые находятся в директориях lib/. Если класс будет найден, он будет подключен автоматически. Так что если ваши классы хранятся в папках lib/, вам не потребуется использовать команды include или require.  
     985Symfony будет искать класс {{{MyClass}}} во всех .php файлах, которые находятся в директориях lib/. Если класс будет найден, он будет подключен автоматически. Так что если ваши классы хранятся в папках lib/, вам не потребуется использовать команды include или require.  
    857986 
    858987{{{ 
    8731002Теперь, когда идеи на которых построен symfony стали понятны, вы почти готовы к разработке вашего первого приложения. Но прежде необходимо установить symfony. 
    8741003 
    875 ''Алексей Гоголев 
     1004''Перевел Алексей Гоголев 
    8761005postman@dev.co.ua'' 
    8771006