Permalink
Browse files

[UK] Updating framework view files, framework messages, requirements …

…messages, guide files. Fixing UTF-8 BOM header
  • Loading branch information...
1 parent 0dc28a6 commit 8472dc0ef3d0c473db835b63b2e2251ed2420c42 @Borales Borales committed Jul 24, 2012
@@ -1,4 +1,4 @@
-Додаток
+Додаток
=======
Обʼєкт додатку (application) інкапсулює контекст виконання запиту. Основне завдання додатка —
зібрати основну інформацію про запит та передати його відповідному контролеру для подальшої обробки.
@@ -1,4 +1,4 @@
-Вхідний скрипт
+Вхідний скрипт
==============
Вхідний скрипт — це PHP-скрипт, що виконує первісну обробку користувальницького запиту.
@@ -1,4 +1,4 @@
-Модель
+Модель
======
Модель (model) — це екземпляр класу [CModel] або класу, успадкованого від нього.
@@ -123,5 +123,136 @@ Yii::import('system.web.*');
названий у тому ж стилі, що і псевдоніми шляхів. Наприклад, клас `application\components\GoogleMap`
повинен зберігатися у файлі, якому відповідає псевдонім `application.components.GoogleMap`.
+Таким чином, для використання користувальницьких просторів імен,
+що починаються, наприклад із `\mynamespace`, де класи розташовані у `/var/www/common/mynamespace/`,
+єдине, що ви повинні зробити це визначити шлях псевдоніму, як наприклад:
+
+~~~
+[php]
+Yii::setPathOfAlias('mynamespace', '/var/www/common/mynamespace/');
+~~~
+
+Простір імен контролерів
+------------------------
+
+За замовчуванням Yii використовує контролери із глобального простору імен.
+Ці класи знаходяться у `protected/controllers`.
+Щоб змінити цю поведінку можна налаштувати властивість `controllerMap` вашого додатку.
+Найкращиий спосіб це зробити - це використання файлу конфігурації (`protected/config/main.php`):
+
+~~~
+[php]
+// додаємо простір імен "mynamespace"
+Yii::setPathOfAlias('mynamespace', '/var/www/common/mynamespace/');
+
+return array(
+ 'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
+ 'name'=>'My Web Application',
+
+ 'controllerMap' => array(
+ 'test' => '\mynamespace\controllers\TestController',
+ ),
+~~~
+
+Коли користувач намагається завантажити будь-який із контролерів, визначених у `controllerMap`,
+Yii завантажує вказані класи, минаючи звичайний метод завантаження контролера.
+У випадку із `test`, Yii буде завантажувати класс із простору імен
+`\mynamespace\controllers\TestController` розташованного у
+`/var/www/common/mynamespace/controllers/TestController.php`.
+
+Зверніть увагу, що код контролера повинен бути належним чином призначений до простору імен:
+
+~~~
+[php]
+// визначаємо простір імен:
+namespace mynamespace\controllers;
+
+// відколи клас тепер знаходиться у просторі імен, звертання до глобального простору імен
+// повинно відбуватися явно із використанням "\":
+class TestController extends \CController
+{
+ public function actionIndex()
+ {
+ echo 'Це TestController із \mynamespace\controllers';
+ }
+}
+~~~
+
+Простір імен модулів
+--------------------
+
+Іноді корисно визначити простір імен для цілого модуля. Наприклад, якщо ви хочете помістити `testmodule` у простір імен `\mynamespace\modules\testmodule`, який вказує на
+`/var/www/common/mynamespace/modules/testmodule`, вам потрібно спочатку створити наступну файлову структуру:
+
+~~~
+/var/www/common/mynamespace/modules
+ testmodule
+ controllers
+ DefaultController.php
+ views
+ default
+ index.php
+ TestmoduleModule.php
+~~~
+
+Представлення `index.php` таке саме, як і у звичайного модуля.
+`TestmoduleModule.php` та `DefaultController.php` знаходяться у просторі імен.
+
+`TestmoduleModule.php`:
+
+~~~
+[php]
+// визначаємо простір імен:
+namespace mynamespace\modules\testmodule;
+
+// відколи клас тепер знаходиться у просторі імен, звертання до глобального простору імен
+// повинно відбуватися явно із використанням "\":
+class TestmoduleModule extends \CWebModule
+{
+ // налаштування неглобального простору імен контролерів (також можна зробити за допомогою конфігурації)
+ public $controllerNamespace = '\mynamespace\modules\testmodule\controllers';
+
+ // звичайний код модуля
+}
+~~~
+
+`DefaultController.php`:
+
+~~~
+[php]
+<?php
+// визначаємо простір імен:
+namespace mynamespace\modules\testmodule\controllers;
+
+// відколи клас тепер знаходиться у просторі імен, звертання до глобального простору імен
+// повинно відбуватися явно із використанням "\":
+class DefaultController extends \Controller
+{
+ public function actionIndex()
+ {
+ $this->render('index');
+ }
+}
+~~~
+
+Тепер залишилося тільки додати наш модуль до додатку.
+Найкращий спосіб зробити це, щоб вказати його у файлі конфігурації додатку (`protected/config/main.php`):
+
+~~~
+[php]
+// додаємо простір імен "mynamespace"
+Yii::setPathOfAlias('mynamespace', '/var/www/common/mynamespace/');
+
+return array(
+ 'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
+ 'name'=>'My Web Application',
+
+ 'modules'=>array(
+ 'testmodule' => array(
+ 'class' => '\mynamespace\modules\testmodule\TestModuleModule',
+ ),
+ ),
+~~~
+
<div class="revision">$Id: basics.namespace.txt 3086 2011-03-15 00:04:53Z qiang.xue $</div>
@@ -48,7 +48,7 @@ public function filters()
~~~
Вищенаведений код встановлює останню дату як значення заголовку `Last-Modified`, коли повідомлення було оновлено.
-[CHttpCacheFilter::lastModifiedExpression] доступний для *лінивих* виразів.
+Ви також можете використовувати [CHttpCacheFilter::lastModifiedExpression] для встановлення заголовку `Last-Modified`, використовуючи вираз php.
> Tip|Підказка: Обидва, [CHttpCacheFilter::lastModifiedExpression] та
[CHttpCacheFilter::lastModified] можуть бути цілим числом, яке представляє Unix timestamp, або довільним рядком,
@@ -139,7 +139,7 @@ try
}
catch(Exception $e) // у разі помилки при виконанні запиту викидається виключення
{
- $transaction->rollBack();
+ $transaction->rollback();
}
~~~
@@ -124,7 +124,7 @@ class m101129_185401_create_news_table extends CDbMigration
catch(Exception $e)
{
echo "Exception: ".$e->getMessage()."\n";
- $transaction->rollBack();
+ $transaction->rollback();
return false;
}
}
@@ -1,4 +1,4 @@
-Використання сторонніх бібліотек
+Використання сторонніх бібліотек
================================
Yii спочатку спроектований таким чином, щоб використання сторонніх бібліотек з метою розширення функціоналу Yii, відбувалося легко і невимушено. Дуже часто при використанні в роботі сторонніх бібліотек, розробники стикаються з проблемами іменування класів і підключення файлів. Оскільки всі класи Yii мають префікс `C`, то ймовірність виникнення конфліктів імен істотно нижче. А завдяки тому, що для підключення файлів Yii використовує [автозавантаження SPL](http://php.net/manual/en/function.spl-autoload.php), робота з бібліотеками, що використовують для підключення файлів класів цей механізм автозавантаження або ж відносний шлях підключення в РНР (PHP include path), стає істотно приємніше.
@@ -1,4 +1,4 @@
-Генерація коду за допомогою консолі (застаріле)
+Генерація коду за допомогою консолі (застаріле)
==============================================
> Note|Примітка: Генератори коду `yiic shell` вважаються застарілими, починаючи з версії
@@ -476,7 +476,9 @@ $bizRule='return !Yii::app()->user->isGuest;';
$auth->createRole('authenticated', 'аутентифікований користувач', $bizRule);
$bizRule='return Yii::app()->user->isGuest;';
-$auth->createRole('guest', 'гость', $bizRule);
+$auth->createRole('guest', 'гість', $bizRule);
~~~
+> Info|Інформація: Починаючи із версії 1.1.11 масив `$params`, який передається до бізнес правила, має ключ `userId`, значення цього ключа це id користувача, для якого ми перевіряємо бізнес правило. Вам було б це потрібно, якщо б ви викликали [CDbAuthManager::checkAccess()] або [CPhpAuthManager::checkAccess()] у місцях, де `Yii::app()->user` відсутній або перевіряєте доступ для іншого користувача.
+
<div class="revision">$Id: topics.auth.txt 2890 2011-01-18 15:58:34Z qiang.xue $</div>
@@ -185,7 +185,7 @@ yiic sitemap index --verbose=1 --type=News
> Note|Примітка: можливість вказати код повернення у консольній команді зʼявилася у версії 1.1.11.
-При автоматичному запуску консольних команд, наприклад, по cron або використовуючи сервер безперервної інтеграції, важливо знати, чи завершилося виконання команди з помилкою або успішно. Якраз для цього і призначені коди повернення.
+При автоматичному запуску консольних команд, наприклад, по cron або використовуючи сервер безперервної інтеграції, важливо знати, чи завершилося виконання команди з помилкою чи ні. Якраз для цього і призначені коди повернення.
Дані коди є цілочисельними значеннями від 0 до 254 (даний інтервал
заданий у [PHP](http://www.php.net/manual/ru/function.exit.php)),
@@ -205,6 +205,7 @@ if (/* помилка */) {
return 0; // все добре, виходимо з кодом 0
~~~
+Коли немає значення повернення, додаток завершить роботу з кодом 0.
Налаштування консольного додатка
--------------------------------
@@ -37,6 +37,8 @@ Yii підтримує інтернаціоналізацію на декіль
У додатку Yii ми розрізняємо [мову додатка|CApplication::language] та [вихідну мову додатка|CApplication::sourceLanguage].
Мова додатка — це мова (локаль) користувача, який працює з додатком. Вихідна мова додатка — мова, яка використовується у вихідному коді додатка. Інтернаціоналізація потрібна тільки у тому випадку, якщо ці дві мови розрізняються.
+> Tip|Підказка: Краще встановити англійську мову як вихідну мову додатка, так як легше знайти перекладачів із англійської мови на будь-яку іншу.
+
Ви можете встановити [мову додатка|CApplication::language] у
[налаштуваннях додатка](/doc/guide/basics.application#application-configuration) або
змінити його безпосередньо перед використанням можливостей інтернаціоналізації.
@@ -1,4 +1,4 @@
-Покращення продуктивності
+Покращення продуктивності
============================
Продуктивність веб-додатків залежить від багатьох факторів. Головний з них — запити до бази даних, файлової системи і пропускної властивості мережі. В Yii, для зменшення втрат продуктивності через самий фреймворк, взятий до уваги кожен з цих факторів. Не дивлячись на це, багато частин додатку можна покращити, для одержання більшої продуктивності.
@@ -1,4 +1,4 @@
-Безпека
+Безпека
=======
Запобігання міжсайтового скриптинга
@@ -28,7 +28,7 @@ Yii використовує [спеціальні коментарі](http://ja
Спробуємо реалізувати простий сервіс, що віддає інформацію про котирування акцій певної компанії.
Для цього нам потрібно реалізувати провайдер, як показано нижче.
Варто зазначити, що успадковуємо клас провайдера `StockController` від [CController].
-Спадкування не є обовʼязковим. Ми опишемо навіщо воно потрібне нижче.
+Спадкування не є обовʼязковим.
~~~
[php]
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Message translations.
+ *
+ * This file is automatically generated by 'yiic message' command.
+ * It contains the localizable messages extracted from source code.
+ * You may modify this file by translating the extracted messages.
+ *
+ * Each array element represents the translation (value) of a message (key).
+ * If the value is empty, the message is considered as not translated.
+ * Messages that no longer need translation will have their translations
+ * enclosed between a pair of '@@' marks.
+ *
+ * Message string can be used with plural forms format. Check i18n section
+ * of the guide for details.
+ *
+ * NOTE, this file must be saved in UTF-8 encoding.
+ *
+ * @version $Id: $
+ */
+return array (
+ '{n} B' => '{n} Б',
+ '{n} Bytes' => '{n} байт|{n} байта|{n} байтів|{n} байта',
+ '{n} GB' => '{n} ГБ',
+ '{n} GigaBytes' => '{n} гігабайт|{n} гігабайта|{n} гігабайтів|{n} гігабайта',
+ '{n} KB' => '{n} КБ',
+ '{n} KiloBytes' => '{n} кілобайт|{n} кілобайта|{n} кілобайтів|{n} кілобайта',
+ '{n} MB' => '{n} МБ',
+ '{n} MegaBytes' => '{n} мегабайт|{n} мегабайта|{n} мегабайтів|{n} мегабайта',
+ '{n} TB' => '{n} ТБ',
+ '{n} TeraBytes' => '{n} терабайт|{n} терабайта|{n} терабайтів|{n} терабайта',
+);
Oops, something went wrong.

0 comments on commit 8472dc0

Please sign in to comment.