Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More clear heading "Přesměrování po signálu" #1062

Open
wants to merge 47 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
8974872
nette/application 3.2.3: new directory structure
dg Apr 18, 2024
5a8ec70
new directory structure throughout documentation
dg Apr 18, 2024
ca2c925
best practices: attribute Requires
dg Apr 18, 2024
dd924c1
nette/bootstrap 3.2.3
dg Apr 19, 2024
70575af
forms: info about hidden field security
dg Apr 22, 2024
edf99fc
typo
dg Apr 25, 2024
9fdffea
tracy: AJAX debugging
dg May 2, 2024
b8cc3a3
tester 2.5.3
dg May 3, 2024
a8ea090
forms: missing information added
dg May 5, 2024
2c8bafb
forms: slightly improved HTML attributes
dg May 5, 2024
83db98b
nette/database 3.2.1
dg May 7, 2024
f23722f
iteratewhile -> grouping
dg May 14, 2024
cb8fb99
latte 3.0.16
dg May 14, 2024
e0f541e
latte: adding |group to the grouping
dg May 14, 2024
c35880e
latte: pictograms
dg May 16, 2024
d870d6a
http: missing fragment warning
dg May 17, 2024
7de788c
latte: added passing-variables
dg May 20, 2024
c44211b
typo
dg May 24, 2024
aae4351
routing: better wording
dg May 28, 2024
a3d5712
bootstrap: $appDir -> $rootDir
dg Aug 3, 2024
feb8491
nette/forms 3.2.4
dg Aug 5, 2024
b64eace
latte 3.0.18
dg Aug 6, 2024
f1bd69f
typo (#1052)
buffus Aug 6, 2024
975a88c
nette/caching 3.3.1
dg Aug 7, 2024
846221e
nette/utils 4.0.5
dg Aug 7, 2024
13d4470
nette/database 3.2.4
dg Aug 9, 2024
ea66fe8
typo
dg Sep 4, 2024
aeb7097
php-generator 4.1.6
dg Sep 10, 2024
16181a4
nette/application 3.2.6
dg Jun 9, 2024
d8f3f80
new translation wip
dg Sep 1, 2024
b0de7ec
latte improved
dg Sep 4, 2024
b7f1ba6
Typos (#1057)
mezotv Oct 4, 2024
bdde973
typo [Closes #1050]
dg Oct 4, 2024
a33ad75
nette/schema 1.3.2
dg Oct 5, 2024
a6271a5
typo
dg Oct 23, 2024
5028b64
Forms: added missing parameters
dg Oct 23, 2024
88e5c68
fixed type hints
dg Oct 23, 2024
ba24c4e
[filter] has same signature as [method]
dg Oct 23, 2024
0f2188a
typo
jvitasek Oct 23, 2024
932c8db
ajax: Naja initialization info [Closes #1053]
dg Oct 23, 2024
48401ac
upgrading: added exception class change info (finder) [Closes #1051]
Rixafy Jul 1, 2024
9831113
typo [Closes #1049]
diegosardina Jun 9, 2024
f99ff6f
better wording [Closes #1038][Closes #1040][Closes #1026][Closes #10…
mildabre Jan 24, 2024
2381d0d
typo [Closes #1024]
mabar Jun 25, 2023
a75ee13
components: added info about redirect after signal [Closes #1017]
dg May 30, 2023
6c64b1f
new Bootstrap API
dg Oct 24, 2024
baf1a2f
More clear heading "Přesměrování po signálu"
mildabre Nov 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
nette/application 3.2.3: new directory structure
dg committed May 5, 2024
commit 8974872afe4e554b5667f4cfda31677159d890fc
25 changes: 11 additions & 14 deletions application/bg/how-it-works.texy
Original file line number Diff line number Diff line change
@@ -22,13 +22,13 @@
/--pre
<b>web-project/</b>
├── <b>app/</b> ← каталог с приложением
│ ├── <b>Presenters/</b> ← классы презентеров
│ │ ── <b>HomePresenter.php</b> ← Класс презентера главной страницы
│ └── <b>templates/</b> ← директория шаблонов
│ │ ├── <b>@layout.latte</b> ← шаблон общего макета
│ │ └── <b>Home/</b> ← шаблоны презентера главной страницы
│ │ ── <b>default.latte</b> ← шаблон действия `default`
── <b>Router/</b> ← конфигурация URL-адресов
│ ├── <b>Основни/</b> ← основни необходими класове
│ │ ── <b>RouterFactory.php</b> ← конфигуриране на URL адреси
── <b>UI/</b> ← презентатори, шаблони и др.
│ │ ├── <b>@layout.latte</b> ← шаблон на споделено оформление
│ │ └── <b>Home/</b> ← Директория за водещи
│ │ ── <b>HomePresenter.php</b> ← Клас на Home Presenter
│ └── <b>default.latte</b> ← шаблон за действие default
│ └── <b>Bootstrap.php</b> ← загрузочный класс Bootstrap
├── <b>bin/</b> ← скрипты командной строки
├── <b>config/</b> ← файлы конфигурации
@@ -91,7 +91,7 @@ Nette е наставник, който ви напътства да пишет

Приложението започва с искане към т.нар. маршрутизатор да реши на кой от презентаторите да изпрати текущата заявка за обработка. Маршрутизаторът решава чия е отговорността. Той разглежда входния URL адрес `https://example.com/product/123`, който иска продукт `показать` с `id: 123` като действие. Добър навик е да записвате двойките водещ + действие, разделени с двоеточие: `Продукт:показать`.

Следователно маршрутизаторът е преобразувал URL адреса в двойка `Presenter:action` + параметри, в нашия случай `Product:show` + `id`: 123`. Вы можете увидеть, как выглядит маршрутизатор в файле `app/Router/RouterFactory.php`, и ще го опишем подробно в главата [Маршрутизация |routing].
Следователно маршрутизаторът е преобразувал URL адреса в двойка `Presenter:action` + параметри, в нашия случай `Product:show` + `id`: 123`. Вы можете увидеть, как выглядит маршрутизатор в файле `app/Core/RouterFactory.php`, и ще го опишем подробно в главата [Маршрутизация |routing].

Да продължим. Приложението вече знае името на водещия и може да продължи. Чрез създаване на обект `ProductPresenter`, който е кодът на предентера `Product`. По-точно, той иска от контейнера DI да създаде презентатора, тъй като създаването на обекти е негова работа.

@@ -121,12 +121,9 @@ class ProductPresenter extends Nette\Application\UI\Presenter

След това водещият връща отговор. Това може да бъде HTML страница, изображение, XML документ, файл, изпратен от диска, JSON или пренасочване към друга страница. Важно е да се отбележи, че ако не посочим изрично как да се отговори (какъвто е случаят с `ProductPresenter`), отговорът ще бъде шаблон, показващ HTML страница. Защо? Ами защото в 99% от случаите искаме да покажем шаблон, водещият приема това поведение по подразбиране и иска да улесни работата ни. Това е гледната точка на Нете.

Дори не е необходимо да указваме кой шаблон да се покаже, той сам извежда пътя до него според проста логика. В случая с водещия `Product` и действието `show`, той се опитва да провери дали някой от тези файлове с шаблони съществува спрямо директорията, в която се намира класът `ProductPresenter`:
Дори не е необходимо да посочваме кой шаблон да се визуализира; рамката сама ще определи пътя. В случая с действието `show` тя просто се опитва да зареди шаблона `show.latte` в директорията с класа `ProductPresenter`. Тя също така се опитва да намери оформлението във файла `@layout.latte` (повече за [търсенето на шаблони |templates#Template Lookup]).

- `templates/Product/show.latte`
- `templates/Product.show.latte`

След това се показва шаблонът. Задачата на водещия и на цялото приложение вече е изпълнена. Ако шаблонът не съществува, ще бъде върната страница за грешка 404. Можете да прочетете повече за водещите на страницата [Водещи |presenters].
Впоследствие шаблоните се визуализират. С това задачата на презентатора и на цялото приложение е изпълнена и работата е приключила. Ако шаблонът не съществува, ще бъде върната страница с грешка 404. Можете да прочетете повече за презентаторите на страницата [Презентатори |presenters].

[* request-flow.svg *]

@@ -137,7 +134,7 @@ class ProductPresenter extends Nette\Application\UI\Presenter
3) маршрутизаторът декодира URL адреса като двойка `Home:default`
4) обектът е създаден `HomePresenter`
5) извиква се методът `renderDefault()` (ако съществува)
6) шаблонът `templates/Home/default.latte` с оформлението `templates/@layout.latte` се визуализира
6) шаблонът `default.latte` с оформлението `@layout.latte` се визуализира


Може би сега ще се сблъскате с много нови концепции, но ние смятаме, че те имат смисъл. Създаването на приложения в Nette е лесно.
Loading