mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-17 14:57:23 +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