Commit 35c3cbd0 by Qiang Xue

Merge branch 'master' into new-asset

parents 1a625516 5a1cf0f3
Вхідні скрипти
===============
Вхідні скрипти це перша ланка в процесі початкового завантаження додатку. Додаток (веб додаток або консольний додаток)
включає єдиний вхідний скрипт. Кінцеві користувачі роблять запити до вхідного скрипта, який створює об’єкти додатка і перенаправляє запит до них.
Вхідні скрипти для веб додатків повинні бути збережені в теках доступних з веб, таким чином вони можуть бути доступними кінцевому користувачу. Такі скрипти за звичай називаються `index.php`, але також можут використовуватись і інші імена, які можуть бути розпізнані використовуваними веб-серверами.
Вхідні скрипти для консольних додатків за звичай розміщенні в [кореневій директорії](structure-applications.md) додатку і мають назву
`yii` (з суфіксом `.php`). Вони мають права на виконання, таким чином користувачі зможуть запускати консольні додатки через команду `./yii <маршрут> [аргументи] [опції]`.
Вхідні скрипти в основному виконують наступну роботу:
* Оголошують глобальні константи;
* Реєструють завантажувач класів [Composer](http://getcomposer.org/doc/01-basic-usage.md#autoloading);
* Підключають файл класа [[Yii]];
* Завантажують конфігурацію додатка;
* Створюють і конфігурують об’єкт [додатка](structure-applications.md);
* Викликають метод [[yii\base\Application::run()]] додатка для опрацювання вхідного запиту.
## Веб додатки <a name="web-applications"></a>
Нижче наведений код вхідного скрипта для [базового шаблону додатка](start-installation.md).
```php
<?php
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
// реєстрація завантажувача класів Composer
require(__DIR__ . '/../vendor/autoload.php');
// підключення файла класа Yii
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
// завантаження конфігурації додатка
$config = require(__DIR__ . '/../config/web.php');
// створення і конфігурація додатка, а також виклик метода для опрацювання вхідного запиту
(new yii\web\Application($config))->run();
```
## Консольні додатки <a name="console-applications"></a>
Нижче наведений аналогічний код вхідного скрипта консольного додатка:
```php
#!/usr/bin/env php
<?php
/**
* Yii console bootstrap file.
*
* @link http://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/
defined('YII_DEBUG') or define('YII_DEBUG', true);
// fcgi не має констант STDIN и STDOUT, вони визначаються за замовчуванням
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
// реєстрація завантажувача класів Composer
require(__DIR__ . '/vendor/autoload.php');
// підключення файла класа Yii
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');
// завантаження конфігурації додатка
$config = require(__DIR__ . '/config/console.php');
$application = new yii\console\Application($config);
$exitCode = $application->run();
exit($exitCode);
```
## Оголошення констант <a name="defining-constants"></a>
Вхідні скрипти є найкращим місцем для оголошення глобальних констант. Yii підтримує наступні три константи:
* `YII_DEBUG`: вказує чи працює додаткок у відлагоджувальному режимі. Перебуваючи у відлагоджувальному режимі, додаток буде збирати більше інформації у логи і покаже більш детальний стек викликів, якщо виникне виняток. По цій причині, відлагоджувальний режим повинен бути використаний тільки в процесі розробки. За замовчуванням значення `YII_DEBUG` дорівнює false;
* `YII_ENV`: вказує в якому середовищі працює додаток. Дана тема детально розглянута в розділі [Конфігурації](concept-configurations.md#environment-constants).
За замовчуванням значення `YII_ENV` дорівнює `'prod'`, що значить, що додаток працює у виробничому режимі;
* `YII_ENABLE_ERROR_HANDLER`: вказує чи потрібно включати наявний у Yii обробник помилок. За замовчуванням значення даної константи
дорівнює true.
При визначенні константи, ми зазвичай використовуєм наступний код:
```php
defined('YII_DEBUG') or define('YII_DEBUG', true);
```
який рівнозначний коду, наведеному нижче:
```php
if (!defined('YII_DEBUG')) {
define('YII_DEBUG', true);
}
```
Перший варіант є більш коротким і зрозумілим.
Константи мають бути визначені якомога раніше, в самому початку вхідного скрипта, таким чином вони зможуть вплинути на решту PHP файлів які будуть підключатись.
Огляд
=====
Yii додаток організований згідно шаблону проектування [модель-представлення-подія (MVC)](http://ru.wikipedia.org/wiki/Model-View-Controller).
[Моделі](structure-models.md) являють собою дані, бізнес логіку і бізнес правила; [представлення](structure-views.md)
відповідають за відображення інформації, в тому числі і на основі даних, отриманих з моделей; [контролери](structure-controllers.md)
приймають вхідні дані від користувача і перетворюють їх в зрозумілий для [моделей](structure-models.md) формат і команди, а також відповідають за відображення потрібного представлення.
Окрім MVC, Yii додаток також має наступні сутності:
* [вхідні скрипти](structure-entry-scripts.md): це PHP скрипти, які доступні напряму кінцевому користувачу додатка.
Вони відповідають за запуск та опрацювання вхідного запиту;
* [додатки](structure-applications.md): це глобально доступні об’єкти, які відповідають за коректну роботу різних
компонентів додатка і їх координацію для обробки запиту;
* [компоненти додатку](structure-application-components.md): це об’єкти, зареєстровані в додатку і які надають
різноманітні можливості для обробки поточного запиту;
* [модулі](structure-modules.md): це самодостатні пакети, що включають в себе повністю всі ресурси для MVC.
Додаток може бути організовано з допомогою декількох модулів;
* [фільтри](structure-filters.md): це код, який повинен бути виконаний до і після оброки запиту контролерами;
* [віджети](structure-widgets.md): це об’єкти, які можуть включати в себе [представлення](structure-views.md).
Вони можуть містити різноманітну логіку і використовуватись в різноманітних представленнях.
Нижче на діаграмі наведена структурна схема додатку:
![Стандартна структура додатку](../guide/images/application-structure.png)
\ No newline at end of file
{
"name": "yii2-authclient",
"version": "2.0.0",
"homepage": "http://www.yiiframework.com/",
"authors": [
"Paul Klimov <klimov.paul@gmail.com>"
],
"description": "External authentication via OAuth and OpenID for the Yii framework",
"keywords": ["yii2", "authclient", "OAuth", "OpenID", "auth"],
"license": "BSD-3-Clause",
"main": [
"assets/authchoice.js",
"assets/authchoice.css"
],
"ignore": [
"/*",
"!/assets"
],
"dependencies": {
"jquery": ">=1.8"
}
}
......@@ -17,7 +17,7 @@ use yii\web\AssetBundle;
*/
class AuthChoiceAsset extends AssetBundle
{
public $sourcePath = '@yii/authclient/widgets/assets';
public $sourcePath = '@yii/authclient/assets';
public $js = [
'authchoice.js',
];
......
......@@ -12,8 +12,7 @@
],
"license": "BSD-3-Clause",
"ignore": [
"**/.*",
"**/*"
"/*"
],
"dependencies": {
"bootstrap": ">=3.0.0"
......
......@@ -16,12 +16,11 @@
"assets/toolbar.js"
],
"ignore": [
"**/.*",
"**/*",
"!assets/"
"/*",
"!/assets"
],
"dependencies": {
"yii2": ">=2.0.0",
"yii2": "master",
"bootstrap": ">=3.0.0"
}
}
......@@ -16,12 +16,11 @@
"assets/gii.js"
],
"ignore": [
"**/.*",
"**/*",
"!assets/"
"/*",
"!/assets"
],
"dependencies": {
"yii2": ">=2.0.0",
"yii2": "master",
"bootstrap": ">=3.0.0",
"typeahead.js": ">=0.10.0"
}
......
......@@ -11,8 +11,7 @@
],
"license": "BSD-3-Clause",
"ignore": [
"**/.*",
"**/*"
"/*"
],
"dependencies": {
"jquery.ui": ">=1.10.0"
......
......@@ -22,12 +22,12 @@
"assets/yii.gridView.js"
],
"ignore": [
"**/.*",
"**/*",
"!assets/",
"!LICENSE.md"
"/*",
"!/assets",
"!/LICENSE.md"
],
"dependencies": {
"jquery": ">=1.8",
"jquery.inputmask": ">=3.0.0",
"punycode": ">=1.3.0",
"yii2-pjax": ">=2.0.0"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment