mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-18 07:20:18 +08:00
Merge pull request #9931 from bizley-code/guide-pl
Guide [PL] helper overview and runtime bootstrapping [skip ci]
This commit is contained in:
76
docs/guide-pl/helper-overview.md
Normal file
76
docs/guide-pl/helper-overview.md
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
Klasy pomocnicze
|
||||||
|
================
|
||||||
|
|
||||||
|
> Note: Ta sekcja jest w trakcie tworzenia.
|
||||||
|
|
||||||
|
Yii jest wyposażone w wiele klas upraszczających pisanie często wykorzystywanych zadań w kodzie, takich jak manipulowanie ciągami znaków bądź tablicami, generowanie kodu HTML, itp.
|
||||||
|
Te pomocnicze klasy znajdują się w przestrzeni nazw `yii\helpers` i wszystkie są klasami statycznymi (czyli zawierają wyłącznie statyczne właściwości i nie powinny być tworzone ich
|
||||||
|
instancje).
|
||||||
|
|
||||||
|
Aby skorzystać z klasy pomocnicznej, należy bezpośrednio wywołać jedną z jej statycznych metod, jak w przykładzie poniżej:
|
||||||
|
|
||||||
|
```php
|
||||||
|
use yii\helpers\Html;
|
||||||
|
|
||||||
|
echo Html::encode('Test > test');
|
||||||
|
```
|
||||||
|
|
||||||
|
> Note: W celu zapewnienia możliwości [dostosowania klas pomocniczych do własnych potrzeb](#customizing-helper-classes), Yii rozdziela każdą z ich wbudowanych wersji
|
||||||
|
na dwie klasy: podstawę (np. `BaseArrayHelper`) i klasę właściwą (np. `ArrayHelper`). Kiedy chcesz użyć klasy pomocnicznej, powinieneś korzystać wyłącznie z jej właściwej wersji
|
||||||
|
i nigdy nie używać bezpośrednio podstawy.
|
||||||
|
|
||||||
|
|
||||||
|
Wbudowane klasy pomocnicze
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
Poniższe wbudowane klasy pomocnicze dostępne są w każdym wydaniu Yii:
|
||||||
|
|
||||||
|
- [ArrayHelper](helper-array.md)
|
||||||
|
- Console
|
||||||
|
- FileHelper
|
||||||
|
- FormatConverter
|
||||||
|
- [Html](helper-html.md)
|
||||||
|
- HtmlPurifier
|
||||||
|
- Imagine (poprzez rozszerzenie yii2-imagine)
|
||||||
|
- Inflector
|
||||||
|
- Json
|
||||||
|
- Markdown
|
||||||
|
- StringHelper
|
||||||
|
- [Url](helper-url.md)
|
||||||
|
- VarDumper
|
||||||
|
|
||||||
|
|
||||||
|
Dostosowywanie klas pomocniczych do własnych potrzeb <span id="customizing-helper-classes"></span>
|
||||||
|
----------------------------------------------------
|
||||||
|
|
||||||
|
Aby zmodyfikować wbudowaną klasę pomocniczną (np. [[yii\helpers\ArrayHelper]]), należy stworzyć nową klasę rozszerzającą odpowiednią podstawę
|
||||||
|
(np. [[yii\helpers\BaseArrayHelper]]) i nazwać ją identycznie jak jej wersja właściwa (np. [[yii\helpers\ArrayHelper]]), łącznie z zachowaniem jej przestrzeni nazw.
|
||||||
|
Ta klasa może następnie zostać użyta do zastąpienia oryginalnej implementacji we frameworku.
|
||||||
|
|
||||||
|
Poniższy przykład ilustruje w jaki sposób zmodyfikować metodę [[yii\helpers\ArrayHelper::merge()|merge()]] klasy [[yii\helpers\ArrayHelper]]:
|
||||||
|
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace yii\helpers;
|
||||||
|
|
||||||
|
class ArrayHelper extends BaseArrayHelper
|
||||||
|
{
|
||||||
|
public static function merge($a, $b)
|
||||||
|
{
|
||||||
|
// zmodyfikowana wersja metody
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Klasę należy zapisać w pliku o nazwie `ArrayHelper.php`, który może znajdować się w dowolnym odpowiednim folderze, np. `@app/components`.
|
||||||
|
|
||||||
|
Następnie dopisujemy poniższą linijkę kodu w [skrypcie wejściowym](structure-entry-scripts.md) aplikacji po fragmencie dołączającym plik `yii.php`,
|
||||||
|
dzięki czemu [autoloader klas Yii](concept-autoloading.md) załaduje zmodyfikowaną wersję klasy pomocniczej zamiast oryginalnej:
|
||||||
|
|
||||||
|
```php
|
||||||
|
Yii::$classMap['yii\helpers\ArrayHelper'] = '@app/components/ArrayHelper.php';
|
||||||
|
```
|
||||||
|
|
||||||
|
Należy pamiętać o tym, że modyfikowanie klasy pomocniczej jest użyteczne tylko w przypadku, gdy chcemy zmienić domyślny sposób działania jej metody.
|
||||||
|
W przypadku dodawania do aplikacji dodatkowych funkcjonalności, lepszym pomysłem jest stworzenie całkowicie nowej, osobnej klasy pomocniczej.
|
||||||
38
docs/guide-pl/runtime-bootstrapping.md
Normal file
38
docs/guide-pl/runtime-bootstrapping.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
Bootstrapping
|
||||||
|
=============
|
||||||
|
|
||||||
|
Bootstrapping to proces przygotowania środowiska działania aplikacji przed jej uruchomieniem, w celu przyjęcia i przetworzenia przychodzącego żądania.
|
||||||
|
Mechanizm ten zachodzi w dwóch miejscach: [skrypcie wejściowym](structure-entry-scripts.md) i w samej [aplikacji](structure-applications.md).
|
||||||
|
|
||||||
|
[Skrypt wejściowy](structure-entry-scripts.md) zajmuje się rejestracją autoloaderów klas dla poszczególnych bibliotek, wliczając w to autoloader Composera
|
||||||
|
poprzez jego plik `autoload.php` i autoloader Yii poprzez plik klasy `Yii`. Następnie skrypt wejściowy ładuje [konfigurację](concept-configurations.md)
|
||||||
|
i tworzy instancję [aplikacji](structure-applications.md).
|
||||||
|
|
||||||
|
W konstruktorze aplikacji zachodzi następujący proces bootstrappingu:
|
||||||
|
|
||||||
|
1. Wywołanie metody [[yii\base\Application::preInit()|preInit()]], która konfiguruje niektóre z właściwości aplikacji o wysokim priorytecie,
|
||||||
|
takich jak [[yii\base\Application::basePath|basePath]].
|
||||||
|
2. Rejestracja [[yii\base\Application::errorHandler|obsługi błędów]].
|
||||||
|
3. Inicjalizacja właściwości aplikacji za pomocą utworzonej konfiguracji.
|
||||||
|
4. Wywołanie metody [[yii\base\Application::init()|init()]], która uruchamia proces bootstrappingu komponentów za pomocą metody
|
||||||
|
[[yii\base\Application::bootstrap()|bootstrap()]].
|
||||||
|
- Załadowanie pliku manifestu dla rozszerzeń `vendor/yiisoft/extensions.php`.
|
||||||
|
- Utworzenie i uruchomienie [komponentów bootstrapowych](structure-extensions.md#bootstrapping-classes) zadeklarowanych przez rozszerzenia.
|
||||||
|
- Utworzenie i uruchomienie [komponentów aplikacji](structure-application-components.md) i/lub [modułów](structure-modules.md), zadeklarowanych
|
||||||
|
we [właściwości bootstrapowej](structure-applications.md#bootstrap) aplikacji.
|
||||||
|
|
||||||
|
Ponieważ proces bootstrappingu jest wykonywany przed obsługą *każdego* żądania, niezwykle istotnym jest, aby był lekki i zoptymalizowany tak bardzo, jak to tylko możliwe.
|
||||||
|
|
||||||
|
Należy unikać rejestrowania zbyt dużej ilości komponentów bootstrappingowych. Wymagane jest to tylko w przypadku, gdy taki komponent powinien uczestniczyć
|
||||||
|
w całym cyklu życia obsługi przychodzącego żądania. Dla przykładu, jeśli moduł wymaga zarejestrowania dodatkowych zasad przetwarzania adresów URL, powinien być wymieniony
|
||||||
|
we [właściwości bootstrapowej](structure-applications.md#bootstrap), aby nowe zasady mogły być wykorzystane do przetworzenia żądania.
|
||||||
|
|
||||||
|
W środowisku produkcyjnym zaleca się zastosowanie pamięci podręcznej kodu, takiej jak [PHP OPcache] lub [APC], aby zminimalizować czas konieczny do załadowania i przetworzenia
|
||||||
|
plików PHP.
|
||||||
|
|
||||||
|
[PHP OPcache]: http://php.net/manual/en/intro.opcache.php
|
||||||
|
[APC]: http://php.net/manual/en/book.apc.php
|
||||||
|
|
||||||
|
Niektóre duże aplikacje posiadają bardzo skomplikowaną [konfigurację](concept-configurations.md), składającą się z wielu mniejszych plików konfiguracyjnych.
|
||||||
|
W takim przypadku zalecane jest zapisanie w pamięci całej wynikowej tablicy konfiguracji i załadowanie jej stamtąd bezpośrednio przed utworzeniem instancji aplikacji
|
||||||
|
w skrypcie wejściowym.
|
||||||
Reference in New Issue
Block a user