Twig: 동적 블둝 이름

에 λ§Œλ“  2011λ…„ 04μ›” 12일  Β·  7μ½”λ©˜νŠΈ  Β·  좜처: twigphp/Twig

블둝 이름에 varsλ₯Ό μ‚¬μš©ν•˜λ©΄ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

{% set block_name = "my_block_name" %}

{% 블둝 블둝 이름 %}
일뢀 html ...
{% μ—”λ“œλΈ”λ‘ %}

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

블둝 이름은 ν…œν”Œλ¦Ώ ꡬ쑰의 μΌλΆ€μ΄λ―€λ‘œ 컴파일 μ‹œκ°„μ— μ•Œλ €μ•Ό ν•©λ‹ˆλ‹€.
λ³€μˆ˜λŠ” λŸ°νƒ€μž„μ—λ§Œ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  7 λŒ“κΈ€

block_name 'block_name' λ¬Έμžμ—΄λ‘œ ν‘œμ‹œλ˜κΈ° λ•Œλ¬Έμ—

μ£„μ†‘ν•©λ‹ˆλ‹€. λ‚˜λ­‡κ°€μ§€λ‘œ 동적 블둝을 κ°€μ§ˆ 수 μ—†λ‹€κ±°λ‚˜ 잘λͺ»λœ λ°©μ‹μœΌλ‘œ μ‚¬μš©ν•˜κ³  μžˆλ‹€λŠ” λ§μ”€μ΄μ‹ κ°€μš”?

λ‹Ήμ‹  말이 λ§žμ•„, 동적 블둝 이름이 μ—†μŠ΅λ‹ˆλ‹€

동적 블둝을 μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€. Twig μ‚¬μš©μž 메일링 λ¦¬μŠ€νŠΈμ— μ‚¬μš© 사둀λ₯Ό κ²Œμ‹œν•˜μ‹­μ‹œμ˜€.

μ½œλ“œμΌ€μ΄μŠ€ μ—΄μ–΄μ„œ μ£„μ†‘ν•©λ‹ˆλ‹€^^. 동적 블둝 μ΄λ¦„μ˜ 이점을 얻을 수 μžˆλŠ” μ‚¬μš© 사둀λ₯Ό μ ‘ν–ˆμ„ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

단일 ν…Œμ΄λΈ” 상속과 ν•¨κ»˜ Doctrine을 μ‚¬μš©ν•©λ‹ˆλ‹€(κΈ°λ³Έ 좔상 클래슀 = Article, News + FaqλŠ” Article ν™•μž₯).

그런 λ‹€μŒ News 및 Faqλ₯Ό λ§Œλ“€ 수 μžˆλŠ” 양식 클래슀λ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λͺ¨λ“  양식은 λ™μΌν•œ λ‚˜λ­‡κ°€μ§€ ν…œν”Œλ¦Ώμ„ μ‚¬μš©ν•©λ‹ˆλ‹€. 그런 λ‹€μŒ 여기에 μ„€λͺ…λœ λŒ€λ‘œ ν•„λ“œ ν…œν”Œλ¦Ώ(예: article.product)을 μ‚¬μš©μž 지정해야 ν–ˆμŠ΅λ‹ˆλ‹€.

λ¬Έμ œλŠ” μ–΄λ–€ ν˜•μ‹μ„ μ‚¬μš©ν•˜λŠλƒμ— 따라 ν•„λ“œμ˜ 이름이 λ‹¬λΌμ§„λ‹€λŠ” 점이닀. 이름은 news_product λ˜λŠ” faq_productμ΄λ―€λ‘œ λ°˜λ³΅μ„ ν”Όν•˜κΈ° μœ„ν•΄ λ‹€μŒκ³Ό 같이 양식 ν•„λ“œλ₯Ό μ‚¬μš©μž μ •μ˜ν•  수 있으면 νŽΈλ¦¬ν•©λ‹ˆλ‹€.

{%- block '_'~type~'_product_widget' -%} ... {% endblock %}

μ•½κ°„μ˜ 쑰사 ν›„ getBlockPrefixλ₯Ό μ‚¬μš©ν•˜μ—¬ λ‹€λ₯Έ 양식 μœ ν˜• ν΄λž˜μŠ€μ—μ„œ μ–‘μ‹μ˜ 접두사λ₯Ό κ°•μ œλ‘œ μ μš©ν•˜μ—¬ 이 문제λ₯Ό ν•΄κ²°ν•˜μ—¬ λͺ¨λ“  양식이 λ™μΌν•œ ν•„λ“œ 이름을 κ°–κ²Œ 되며 κ°„λ‹¨νžˆ article_productλ₯Ό μ‚¬μš©μž μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

public function getBlockPrefix(){ return 'article'; }

κ·Έλž˜μ„œ λˆ„κ΅°κ°€μ—κ²Œ 도움이 될 수 μžˆλŠ” 이 μ‚¬μš© 사둀λ₯Ό λ¬Έμ„œν™”ν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€...

블둝 이름은 ν…œν”Œλ¦Ώ ꡬ쑰의 μΌλΆ€μ΄λ―€λ‘œ 컴파일 μ‹œκ°„μ— μ•Œλ €μ•Ό ν•©λ‹ˆλ‹€.
λ³€μˆ˜λŠ” λŸ°νƒ€μž„μ—λ§Œ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰