Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ http://jinja.pocoo.org/2/documentation/templates - Jinja2 - ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΡΠ·ΡΠΊΠ° Django-template. ΠΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°ΠΈΠ½ΠΈΠ΅ ΡΠ·ΡΠΊΠ° Ρ ΡΠ·ΡΠΊΠΎΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°ΡΠΎΡΠ° Twig. ΠΠΎ Π²ΡΡΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π²ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ twig ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π½Π΅ΡΠΊΠ° ΡΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°ΡΠΎΡΠ°, ΠΊΡΠΎΠΌΠ΅, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΌΠ½ΠΎΠΉ, Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°Π±Π»ΠΎΠ½, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠ°ΠΉΠ» ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΎΠΏΠΈΡΠ°Π½ Π½Π° ΡΡΠΎΠΌ ΠΆΠ΅ ΡΠ·ΡΠΊΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°ΡΠΎΡΠ°. Π’ΠΎΠ΅ΡΡΡ, ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² - ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ Π΅Π³ΠΎ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ Π½ΠΎΠ²ΡΡ. ΠΡΠΈ ΡΡΠΎΠΌ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ Π³ΠΈΠ±ΠΊΠΎΡΡΡ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΡΠΎΠ²Π½Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠΊΡΠ΄Π° Π²Π·ΡΠ»Π°ΡΡ ΡΠ°ΠΌΠ°Ρ ΠΏΠ΅ΡΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ "ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π°" - ΠΏΠΎΠΊΡΡΡΠΎ ΠΌΡΠ°ΠΊΠΎΠΌ. ΠΠΎ Π²ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ - ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ Π² Π²ΠΈΠ΄Π΅ Π΄Π°ΡΠ° ΠΎΡ Π²Π½Π΅Π·Π΅ΠΌΠ½ΡΡ ΡΠΈΠ²ΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π·Π½Π°Π½ΠΈΠ΅ ΠΎΠ± ΡΡΠΎΠΌ ΡΡΠ΅ΡΡΠ½ΠΎ Π² Π²Π΅ΠΊΠ°Ρ ...
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°ΡΠΎΡΠ° - ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ PHP ΠΊΠΎΠ΄ (Π΄Π»Ρ Π²Π΅ΡΡΠΈΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² - Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² PHP) ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ΄. Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ, ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ Π½ΡΠΆΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ html (ΠΈΠ»ΠΈ ΡΠ΅Π³ΠΎ ΡΠ°ΠΌ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ°Π±Π»ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π³Π΅Π½Π΅ΡΠΈΡΡ).
ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠΈΡ Π½Π°Π΄ΠΎΠ±Π½ΠΎΡΠ΅ΠΉ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ html Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈΠ· javascript. Π¨Π°Π±Π»ΠΎΠ½ js_internal ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΈ Π΄Π΅Π»Π°Π»ΡΡ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΏΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ Π½Π°Π΄ΠΎΠ±Π½ΠΎΡΡΠΈ - Π½Π΅ Π΄ΠΎΠΏΠΈΡΠ°Π½.
Π―Π΄ΡΠΎ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠ° ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΡΠΈΡΠ°Π΅ΠΌ Π½Π° ΡΠ°ΠΉΡΠ΅ http://jinja.pocoo.org/2/documentation/templates. ΠΡΡΠ°ΡΠΊΠΈ ΡΠΎΠ²Π΅ΡΡΠΈ ΠΈ Π»Π΅Π½Ρ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΌΠ½Π΅ ΡΡΠΏΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Ρ ΡΠ°ΠΉΡΠ°, Π° Π»Π΅Π½Ρ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ Π·Π½Π°Π½ΠΈΠΉ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ - ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ Π΄Π»Ρ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π‘Π΅ΠΉΡΠ°Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡΡ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ΅Π½Π΅ΡΠ΅ΠΊ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ Twig. ΠΠΎΠΊΠ° ΡΠ°Π·Π½ΠΈΡΠ° Π² ΡΠ·ΡΠΊΠ΅ - Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ range
. Π£ ΠΌΠ΅Π½Ρ ΠΎΠ½Π° Π³Π΅Π½Π΅ΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ² ΠΎΡ Π½ΡΠ»Ρ Π΄ΠΎ MAX Ρ ΡΠ°Π³ΠΎΠΌ STEP (ΠΊΠ°ΠΊ Π² Jinja), ΡΠΎΠΎΡΠ²Π΅ΡΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Ρ 2 ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, Π° Π² twig - ΠΎΡ MIN Π΄ΠΎ MAX Ρ ΡΠ°Π³ΠΎΠΌ 1. ΠΠΏΡΠΎΡΠ΅ΠΌ, Ρ ΠΏΠΎΡΠ»Π·ΡΡΡΡ Π·Π°ΠΏΠΈΡΡΡ x..y Ρ Π»ΠΈΡΠ΅ΡΠ°Π»ΡΠ½ΡΠΌΠΈ x ΠΈ y, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΠΊΠ° ΠΌΠΈΠ½ Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΎ..
ΠΠΈΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ ΠΎΡΠ»ΠΈΡΠΈΠΉ.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Jinja ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ, Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠ»ΡΡΠΈ Π΄Π°Π½Π½ΡΡ Π² `` ΠΊΠ°Π²ΡΡΠΊΠ°Ρ (ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΠΎΠ΄ΠΈΠ½Π°ΡΠ½Π°Ρ). Π’Π°ΠΊΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ Ρ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ ΠΈ ΡΡΡΠ°Π½Π½ΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΡΠ°Π±Π»ΠΎΠ½Π°. ΠΡΠ»ΠΈ Π² ΠΊΠ»ΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ» `, Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ escapeβΠΈΡΡ(ΡΠ»Π΅ΡΠΈΡΡ) ΠΏΠΎ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ ΡΠ·ΡΠΊΠ° Π‘.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅Π³Π° if
. ΠΠΌΠ΅ΡΡΠ΅ Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ elif
ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π΅Π³ΠΎ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌ elseif
, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΡ
ΠΎΡΠΈΠ±ΠΎΠΊ Ρ php ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ².
ΠΡΠ΅ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ . Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΡΠΈΠ±ΠΊΠ° "Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅" ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡ, Π²ΡΠ΅ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ ΠΊ ΠΏΡΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅. Π₯ΠΎΡΠΎΡΠΎ ΡΡΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ, Π½Π΅ Π·Π½Π°Ρ, Π½ΠΎ ΠΏΠΎΠΊΠ° Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ. ΠΡΠ΅ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ (Π·Π° Π½ΠΈΠΌΠΈ ΡΡΠΎΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΠ·ΠΎΠ²Π°) ΡΡΠΈΡΠ°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ°ΠΊΡΠΎΠΊΠΎΠΌΠ°Π½Π΄. ΠΠ°ΠΊΡΠΎΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ±ΡΠ·Π°Π½Π° Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π² ΡΠ°Π±Π»ΠΎΠ½Π΅, Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌΠ° ΠΈΠ· ΡΠ°Π±Π»ΠΎΠ½Π° export ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ import. ΠΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΡΠΌΡΡΠ»Π° ΡΠ°ΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ. ΠΠ°Π΄ΠΎΠ±Π½ΠΎΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ self ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΌΠ½Π΅ Π½Π°Π΄ΡΠΌΠ°Π½Π½ΠΎΠΉ ΠΈ Π»ΠΈΡΠ½Π΅ΠΉ.
Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ ΠΎΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄. ΠΡΠ±ΠΎΠΉ ΡΠ°Π±Π»ΠΎΠ½ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ-ΠΆΠ΅ ΠΊΠΎΠ΄, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ Π³Π΄Π΅ ΠΎΠ½ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅ΡΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ php-ΡΠ°Π±Π»ΠΎΠ½Ρ Π½Π° Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ΅ΡΡΠΊΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΡΠΆΠ΅ ΠΈΡ Π±Π΅Π· ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ².
-
Variables - Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°, ΡΠΎ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π²ΡΠ±ΠΎΡΠΊΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈ Π²ΡΠ±ΠΎΡΠΊΠΈ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ "ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ" ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΌΠ°ΠΊΡΠΎΠΊΠΎΠΌΠ°Π½Π΄, ΡΡΠΎΠ±Ρ Π²ΡΠ±ΠΎΡΠΊΠ° ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π±ΡΠ»ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ. Π’Π°ΠΊΠΆΠ΅ Π·Π°Π±Π°Π²Π½ΠΎ ΡΠ΄Π°Π»Π°ΡΡ "ΡΠ΅ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ" ΠΏΠΎΡΠ»Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠΎΠ³ΠΎΠ½ΠΎΠ². ΠΡΠΈ ΠΏΡΠΎΠ³ΠΎΠ½Π΅ ΡΠ°Π±Π»ΠΎΠ½Π° ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΠΏΡΠΈ ΡΠ΅ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π²ΡΠ±ΠΎΡΠΊΠ° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ.
-
Filters - ΡΠΈΠ»ΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ. Π’ΠΎΡΠ½Π΅Π΅, ΠΎΠ½ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
-
Π’ests - ΡΠ΅ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½Ρ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠ»ΡΡΡΡ ΠΎΡ ΡΠ΅ΡΡΠΎΠ² ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΠ΅ΡΡΠ° ΠΊ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ. Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΈΠ»ΡΡΡΠΎΠ² ΠΈ ΡΠ΅ΡΡΠΎΠ² ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ.
-
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ Π±Π»ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΊ ΠΈ ΡΡΡΠΎΡΠ½ΡΠ΅.
-
Whitespace control - ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ.
-
Escaping - ΡΠ΅Π³ raw ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½.
-
Line statesment - Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ
-
ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ. Π€ΡΠ½ΠΊΡΠΈΡ super ΠΏΠΎΠΊΠ° Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π°
-
ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅Π³ΠΈ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ.
-
Block nesting and scoop - ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ scooped Π±Π»ΠΎΠΊΠ° Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½.
-
List on control structures
-
for - ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π±Π΅Π· Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ
if
, Π½ΠΎ Ρelse
ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌloop
. ΠΡΡΠΈΠ±ΡΡrecursive
ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ (Π² twig Π΅Π³ΠΎ ΡΠΎΠΆΠ΅ Π½Π΅Ρ). Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ². -
if ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½
-
ΠΌΠ°ΠΊΡΠΎΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π±Π΅Π· ΠΈΠΌΠΏΠΎΡΡΠ°, Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ. Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ. Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΌΠ°ΠΊΡΠΎΡΠ° ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΌΠ°ΠΊΡΠΎΡΠ° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
-
Π’Π΅Π³ call Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½
-
Π’Π΅Π³ filter Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½
-
set ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½
-
Extends ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½
-
Include Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½
-
Import ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΠΎΠΊΠ° Π² ΠΏΡΠΎΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅, Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ²
Π‘ΠΏΠΈΡΠΎΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΡΠΈΠ»ΡΡΡΠΎΠ²
- default
- escape , e
- join
- length
- replace
ΡΠ΅ΡΡΠΎΠ² Π½Π΅Ρ
Π‘ΠΏΠΈΡΠΎΠΊ ΡΡΠ½ΠΊΡΠΈΠΉ
-
lipsum
-
min
-
max
-
trim
-
parent - Π²ΡΠ·ΠΎΠ² ΡΠ°Π±Π»ΠΎΠ½Π°-ΠΏΡΠ΅Π΄ΠΊΠ°
Π’Π΅Π³ΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² Extension Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ° ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π΅ΠΊΠΈΠΉ php-ΠΊΠ»Π°ΡΡ. ΠΠΌΡ ΠΊΠ»Π°ΡΡΠ° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°Π±Π»ΠΎΠ½Π°. ΠΠ· ΡΠ°Π±Π»ΠΎΠ½Π° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ XXX.jtpl
- ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊΠ»Π°ΡΡ tpl_XXX
ΠΡΠΈ ΡΡΠΎΠΌ Π²ΡΠ΅ ΡΠΎΡΠΊΠΈ Π² ΡΠ»ΠΎΠ²Π΅ XXX Π·Π°ΠΌΠ΅Π½ΡΡΡΡΡ Π½Π° ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΡ. ΠΡΠΈ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π΅ Π΄Π°Π½Π½ΡΡ
Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΈ Π²ΡΠ·Π²Π°ΡΡ Π»ΠΈΠ±ΠΎ Π½ΡΠΆΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, Π»ΠΈΠ±ΠΎ βΠΊΠΎΡΠ½Π΅Π²ΡΡβ - β_β. ΠΠΈΠΊΠ°ΠΊΠΈΡ
Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π½Π΅ Π½ΡΠΆΠ½ΠΎ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠ»ΡΡΡΡ, ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠ΅ΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ΡΡ ΠΏΡΠΈ run-time ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π΅, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅ tpl_base.
ΠΠ°ΠΆΠ΄ΡΠΉ Π±Π»ΠΎΠΊ ΡΠ°Π±Π»ΠΎΠ½Π° ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅ΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠ»Π°ΡΡΠ°. ΠΠ΅ΡΡ ΡΠ°Π±Π»ΠΎΠ½ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΡΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡ β_β. ΠΠ°ΠΊΡΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΊΠ»Π°ΡΡΠ° Π·Π°Π²ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ°ΡΡΠΈΠ² macro ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌΠΈ Π² ΡΠ°Π±Π»ΠΎΠ½Π΅ ΠΌΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΈΠΌΠΏΠΎΡΡΠ°. ΠΠΌΠΏΠΎΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΡΠ°Π±Π»ΠΎΠ½Π° ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° macro Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠΌ. "ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅" Π±Π»ΠΎΠΊΠΎΠ² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΠΌΡΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΡΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ·Π½Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠ΅Π΄ΠΊΠ° ΠΊΠ»Π°ΡΡΠ° ΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΡ
ΠΌΠ°ΠΊΡΠΎΡΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΡΡΠ°Π²ΠΊΠ° ΠΌΠ°ΠΊΡΠΎΡΠ° {{ MACRONAME(PAR1,PAR2...) }}
Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π² ΠΊΠΎΠ΄Π΅ ΡΠ°ΠΊ
if(!empty($this->macros[βMACRONAMEβ])
call_user_func($this->macros[βMACRONAMEβ],PAR1,PAR2...)
ΠΠΌΠΏΠΎΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² import βmacros.tplβ
ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠ°ΠΊ
function __construct (){
// import βmacros.tplβ
require_once βmacros.tpl.phpβ;
$import= new macros();
// ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ import βmacros.tplβ
$this->macros=array_merge($this->macros,$import->macros);
// ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ from βmacros.tplβ import βyyyβ asβ βxxxβ
$this->macros[βxxxβ]=$import[βyyyβ]
}
ΡΠ½Π°ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²Π²ΠΎΠ΄ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ newOp1
->newOp1('not','!(%s)','BB')
ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ - ΠΈΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π²ΡΠΎΡΠΎΠΉ printf-ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π°, ΡΡΠ΅ΡΠΈΠΉ - ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΏΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ². ΠΠ΅ΡΠ²Π°Ρ Π»ΠΈΡΠ΅ΡΠ° - ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΡΠΈΠΏΡ, Π²ΡΠΎΡΠ°Ρ Π»ΠΈΡΠ΅ΡΠ° - ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° ΠΊ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΡΠΈΠΏΡ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΡΠ°Π²ΠΊΠΎΠΉ Π² ΡΠ°Π±Π»ΠΎΠ½. ΠΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²Π²ΠΎΠ΄ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ newOp2
->newOp2('== != > >= < <=',2,null,'B**')
Π‘ΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡΡ Π² ΡΠ·ΡΠΊΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΡΠ°Π²Π»Π΅Π½ Π² ΠΊΠΎΠ΄ ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ (%s) ΠΠΠΠ ΠΠ¦ΠΠ― (%s) , Π³Π΄Π΅ ΠΠΠΠ ΠΠ¦ΠΠ― Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ. ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠ±Π΅Π» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ. ΠΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ - ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. Π‘ΡΡΠ΅ΡΡΠ²Π΅Π½Π΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. Π’ΡΠ΅ΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ - printf-ΡΠ°Π±Π»ΠΎΠ½, Π΅ΡΠ»ΠΈ null, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ printf-ΡΠ°Π»ΠΎΠ½. Π§Π΅ΡΠ²Π΅ΡΡΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ - ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ΠΏΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠ°Π±Π»ΠΎΠ½Π°.
->newOp2('and',3,'(%s) && (%s)','BBB')
->newOp2('|',11,array($this,'function_filter'))
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ - ΠΈΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π²ΡΠΎΡΠΎΠΉ - ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ , ΡΡΠ΅ΡΡΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ printf-ΡΠ°Π±Π»ΠΎΠ½ ΠΈΠ»ΠΈ callback ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΡΠ΄Π°ΡΡΠ΅ΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
->newOpR('loop',array($this,'operand_loop'))
- ΠΎΡΠΎΠ±ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
loop
. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ ΠΊ loop Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΡΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ. ΠΠΈΠ΄ ΠΈ ΡΠΌΡΡΠ» ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ callback'ΠΎΠΌ.
Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΈΠ»ΡΡΡΡ ΠΈ ΡΠ΅ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
-
Π ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π½ΡΠΆΠ½ΠΎ Π²ΡΡΠ°Π²ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° - ΡΡΠ½ΠΊΡΠΈΡ escape) Π² Π²ΠΈΠ΄Π΅:
->newFunc('e','htmlspecialchars(%s)','SS') ->newFunc('escape','htmlspecialchars(%s)','SS')
-
ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ - ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ. Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ - ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ printfβΠ° Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ. ΠΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Π² ΡΡΡ ΡΡΡΠΎΠΊΡ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ. Π’ΡΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ- ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΠΌΡΠ΅ Π² php-ΠΊΠΎΠ΄. ΠΏΡΠΈ ΠΈΠ·Π³ΠΎΡΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ Π²ΠΈΠ΄ (ΠΏΠ΅ΡΠ²Π°Ρ Π»ΠΈΡΠ΅ΡΠ° ΡΡΠ΅ΡΡΠ΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°) ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ² ΠΊ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠΌΡ Π²ΠΈΠ΄Ρ (Π²ΡΠΎΡΠΎΠΉ ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π»ΠΈΡΠ΅ΡΡ)
ΠΡΠΈ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ {{user.username|e}}
ΠΏΠΎΠ»ΡΡΠΈΡΡΡ
htmlspecialchars((isset($user['username'])?$user['username']:""))
Π€ΡΠ½ΠΊΡΠΈΡ lipsum
->newFunc('lipsum','$this->func_lipsum(%s)')
ΠΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ lipsum ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ func_lipsum ΠΈΠ· Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π° tpl_base.
/**
* ΡΡΠ½ΠΊΡΠΈΡ lipsum
*/
function func_lipsum($n=5, $html=True, $min=20, $max=100){
$result='';
...
return $result;
}
Π€ΡΠ½ΠΊΡΠΈΡ replace
->newFunc('replace',array($this,'function_replace'))
ΠΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ - callback, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ΄Π°ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»Π΅. ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ - Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ.
Callback ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ
/**
* ΡΠΈΠ»ΡΡΡ - replace
* @param operand $op1 - TYPE_ID - ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ
* @param operand $op2 - TYPE_LIST - ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
*/
function function_replace($op1,$op2){
$op1->val= 'str_replace('.$this->to('S',$op2->value['keys'][1])->val
.','.$this->to('S',$op2->value['keys'][2])->val
.','.$this->to('S',$op2->value['keys'][0])->val
.')';
$op1->type="TYPE_OPERAND";
return $op1;
}
ΠΡΠ±ΠΎΡ callbackβΠ° Π²ΠΌΠ΅ΡΡΠΎ ΡΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² Π²ΠΈΠ΄Π΅ printf-ΡΠ°Π±Π»ΠΎΠ½Π° ΡΠ΄Π΅Π»Π°Π½ ΠΈΠ· Π·Π° Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² str_replaceβΠ°. ΠΠ»Ρ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ
- ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ 2 ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° - ΠΏΠ΅ΡΠ²ΡΠΉ - ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ - operand(val:βreplaceβ,type:βTYPE_IDβ) - ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΡΠΎΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
- ΡΡΠ½ΠΊΡΠΈΡ to ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ ΠΊ Π½ΡΠΆΠ½ΠΎΠΌΡ Π²ΠΈΠ΄Ρ
ΠΡΠΈ ΠΏΠ°ΡΡΠΈΠ½Π³Π΅ ΡΠ΅ΠΊΡΡΠ° ΡΠ°Π±Π»ΠΎΠ½Π° ΡΠ΅ΠΊΡΡ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° Π»Π΅ΠΊΡΠ΅ΠΌΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΠΈΠΏΠΎΠΌ. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π»Π΅ΠΊΡΠ΅ΠΌΡ ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠΉ ΡΠΈΠΏ.
-
TYPE_STRING - ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΡΠΎΠΊΠΈ, ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ Π² Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ
-
TYPE_STRING1 - ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΡΠΎΠΊΠΈ, ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ Π² ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ
-
TYPE_STRING2 - ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΡΠΎΠΊΠΈ, ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ Π² ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ
-
TYPE_ID - ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°
-
TYPE_OPERATION - ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ (ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ newOp1, newOp2)
-
TYPE_COMMA - Π½Π΅ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π½Π½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ
ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π°Π½Π°Π»ΠΈΠ·Π΅ ΡΠ΅ΠΊΡΡΠ°.
-
TYPE_OBJECT - Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΠΈΠΏ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²ΡΠ·ΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°.
-
TYPE_LIST - ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ². ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°, Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ². Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ 2 Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ², ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΡ . ΠΡ ΡΠΌΡΡΠ» ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ.
-
TYPE_OPERAND - ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ, Π²ΡΠ΄Π°ΡΡΠ°Ρ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° php ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ². ΠΏΡΠΈΠΌΠ΅Ρ: β2β (ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° 2 Ρ ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΠΌΠΈ ΠΊΠ°Π²ΡΡΠΊΠ°ΠΌΠΈ).
-
TYPE_SENTENSE - Π³ΠΎΡΠΎΠ²ΡΠ΅ Π΄Π»Ρ ΡΠΊΠ»Π΅ΠΈΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΡΠΊΡ Ρ Π·Π°ΠΏΡΡΠΎΠΉ ΠΊΡΡΠΊΠΈ ΡΠ΅ΠΊΡΡΠ°. ΠΡΠΈΠΌΠ΅Ρ $x=2
-
ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ
-
Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°
-
ΠΎΡΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°
-
ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°
-
'Π±ΠΎΠ΅Π²ΡΠ΅' ΡΠ°Π±Π»ΠΎΠ½Ρ
-
ΠΎΡΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ 'Π±ΠΎΠ΅Π²ΡΠ΅' ΡΠ°Π±Π»ΠΎΠ½Ρ
-
Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° (Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°)
ΠΠ»Ρ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΠΈ ΠΎΡΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ 'Π±ΠΎΠ΅Π²ΡΠ΅' ΡΠ°Π±Π»ΠΎΠ½Ρ
ΠΠ»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Π½Π° ΠΌΠ΅ΡΡΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, 'ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅' ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΈ ΠΎΡΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°
-| readme.txt - ΡΠ°ΠΉΠ» Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ
|-lib ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ²
|-render ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ "Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅" ΡΠ°Π±Π»ΠΎΠ½Ρ. ΠΡ
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ
| ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ templates ΠΏΡΠΎΠ΅ΠΊΡΠ°.
|-samples ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ
|- templates ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ².
ΠΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°
- TEMPLATE_PATH - ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΈ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ².
Π ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ sample ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ².
render.php
Π’ΡΠ°Π½ΡΠ»ΡΡΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ°, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ΅ΠΊΡΡ ΡΠ°Π±Π»ΠΎΠ½Π° Π² Π»Π΅ΠΊΡΠ΅ΠΌΡ, ΠΈ ΡΡΠ΅ΠΊΠΎΠ²ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ°, "Π²ΡΡΠΈΡΠ»ΡΡΡΠ΅Π³ΠΎ" ΠΈΡ
. ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΏΠ°ΡΡΠΈΠ½Π³Π°. ΠΡΠ±ΠΎΠΉ ΡΠ°Π±Π»ΠΎΠ½ "Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ" Π΄Π»Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ %} ... {%
Ρ Π½Π°ΡΠ°Π»Π° ΠΈ Ρ ΠΊΠΎΠ½ΡΠ° ΡΠ°ΠΉΠ»Π°. Π’Π°ΠΊΠΈΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ }} ... {{
, Ρ ΡΠ°Π·Π½ΡΠΌΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ
ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ
ΡΠΊΠΎΠ±ΠΎΠΊ, Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ "Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°ΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅" ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ΅ΠΊΠ΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ² ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Ρ ΡΠΈΠΏΠΎΠΌ Π‘Π’Π ΠΠΠ, Π° Π½Π° ΡΡΠ΅ΠΊΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ - ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ "ΠΏΠ΅ΡΠ°ΡΡ". Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΡΠ΅ΠΊΡΡ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ°ΡΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ makelex
.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ²Π΅ΡΡΠΊΠΈ Π»Π΅ΠΊΡΠ΅ΠΌ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΊΠ»Π°ΡΡΠΎΠ² operand Ρ ΡΠΈΠΏΠ°ΠΌΠΈ
- TYPE_STRING - ΡΡΡΠΎΠΊΠ°, ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ»Π° Π²Π·ΡΡΠ° Π² " ΠΊΠ°Π²ΡΡΠΊΠΈ
- TYPE_STRING1 - ΡΡΡΠΎΠΊΠ°, ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ»Π° Π²Π·ΡΡΠ° Π² ' ΠΊΠ°Π²ΡΡΠΊΠΈ
- TYPE_STRING2 - ΡΡΡΠΎΠΊΠ°, ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ»Π° Π²Π·ΡΡΠ° Π² ` ΠΊΠ°Π²ΡΡΠΊΠΈ
- TYPE_DIGIT - ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π°
- TYPE_COMMA - Π½Π΅ΠΎΠΏΠΎΠ·Π½Π°Π½Π½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ», ΡΠΌΡΡΠ» ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΏΡΠΎΡΡΠ½ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°
- TYPE_OPERATION - Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ
- TYPE_ID - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, Π»ΡΠ±Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π½Π°ΡΠΈΠ½Π°ΡΡΠ°ΡΡΡ Ρ Π»ΠΈΡΠ΅ΡΡ.
Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ²Π΅ΡΡΠΊΠΈ Π»Π΅ΠΊΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ ΡΠΈΠΏΠ°
- TYPE_EOF - ΡΠΈΠΌΠ²ΠΎΠ» ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ°
ΠΠ° ΡΡΠ°ΠΏΠ΅ ΡΠ²Π΅ΡΡΠΊΠΈ Π»Π΅ΠΊΡΠ΅ΠΌ Π²ΡΠΊΠΈΠ΄ΡΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΎΡΡΡΠΊΠΈ ΠΎΡ ΠΏΡΠΎΠ±Π΅Π»ΡΠ½ΡΡ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² -
.
Π’Π΅Π³ΠΈ - ΡΡΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»ΠΎΠ²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΡΠ·ΡΠΊΠ°. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, macro
, if
, for
ΠΈ Ρ.Π΄. Π‘Π»ΡΠΆΠ΅Π±Π½ΡΠ΅ ΡΠ»ΠΎΠ²Π° - ΡΡΠΎ ΡΠ»ΠΎΠ²Π°, ΡΠ»ΡΠΆΠ°ΡΠΈΠ΅ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅Π»Π° ΡΠ΅Π³Π° Π½Π° ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, else
, endmacro
ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡΠ΅ ΡΠ΅Π³ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Ρ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΠ΅ ΡΠΎ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ ΠΈ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠ΅Π³ΠΎΠ² Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡ.
ΠΡΠΈ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΡΠ΅Π³Π° ΠΌΡ ΠΈΡΠ΅ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΠ΅Π³Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π΅Π΅.
ΠΠ½ΡΡΡΠ΅Π½Π½ΠΎΡΡΡ ΡΠ΅Π³Π°, Π΄ΠΎ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ Π½Π°ΠΌ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ block_internal
$parcer->block_internal(array('else', 'endfor'));
ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΡ Π΄ΡΡΠ³ ΠΊ Π΄ΡΡΠ³Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π³Π° loop. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΊΠ» for ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅Ρ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π½ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ loop, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΊΠ»Π° ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
{% for i in [1,2,3] %}
<span class="{{loop.cycle('odd','even')}}">
{{- loop.index -}} </span><br>
{% endfor %}
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ loop.cycle Π²ΡΠ΄Π°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ ΡΠ²ΠΎΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΡΠΈΠΊΠ»Π΅. loop.index - ΡΡΠΊΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΈΠΊΠ»Π°, ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡΠΈ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ Π² PHP ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ, ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π½Π΅Ρ.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅Π³Π° loop Π²Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΡΠ»Π°ΡΡΠ° php_compiler
->newOpR('loop',array($this,'operand_loop'))
operand_loop
- ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ Π½Π°Π΄ΠΎΠ±Π½ΠΎΡΡΡ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅ΠΌΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
function operand_loop($op1=null,$attr=null,$reson='attr'){ ... }
attr
- ΠΈΠΌΡ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° loop, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΈΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°. reason
- ΠΏΠΎΠ²ΠΎΠ΄, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π½Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π΅ΡΠ³Π°Π΅Ρ ΡΠ΄ΡΠΎ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ°.
reason==call
- ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π²ΡΠ·ΠΎΠ²
reason==attr
- Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ Π²ΡΡΡΠ΅ΡΠ°Π΅Ρ Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΠΊΡΡΠ΅ ΡΠ»ΠΎΠ²ΠΎ loop. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ - Π²Π΅ΡΠ½ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° operand (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ - operation). ΠΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΎ Π½Π° ΡΡΠ΅ΠΊΠ΅. ΠΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ attr Π½Π΅ ΠΏΡΡΡΠΎΠΉ, ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° loop Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ '.'.