Drupal մոդուլում էջի ծրագրային ստեղծում
Drupal-ում պարզ էջ ստեղծելու երկու քայլ կա՝
Հայտարարեք ուղին և դրա պարամետրերը։
Այս քայլը ներառում է էջի վերնագիրը, մուտքի պահանջները և այլն։
Drupal 7-ում դուք պետք է իրականացնեիք hook_menu() ֆունկցիան։
Drupal 8-ում ստեղծեք <module_name>.routing.yml ֆայլը մոդուլների վերին կարգի թղթապանակում։
Գրեք կոդը՝ վերադարձնելու էջի մարմինը։
Drupal 7-ում դուք պետք է գրեիք էջի կոլբեք ֆունկցիան, որը նշված էր hook_menu()-ում։
Drupal 8-ում էջի կոլբեքը պետք է լինի կամ կլասի մեթոդ, կամ գրանցված ծառայություն։ Այն կարող է տարբերվել տարբեր պայմաններից կախված (HTTP կամ HTTPS, բովանդակության վերնագրեր և այլն), բայց դա անցնում է այս ներդրման շրջանակներից։
Գործընթաց
Այս էջի օրինակին հետևելով, դուք կկարողանաք ստեղծել պարզ էջ ձեր սեփական մոդուլում՝ առանց Drupal-ի ներքին մեխանիզմները մանրամասն իմանալու։ Ավելի մանրամասն տեղեկությունների համար տեսեք Փոփոխությունների գրառումը, որը վերաբերում է երթուղավորման համակարգի փոփոխություններին և տարբեր իրականացումներին բազայում և նախագծերի օրինակներում։
Երթուղավորման YAML ֆայլը օրինակ մոդուլի համար
Երթուղավորման տեղեկատվությունը պահվում է example/example.routing.yml ֆայլում՝
example.my_page: path: '/mypage/page' defaults: _controller: '\Drupal\example\Controller\ExampleController::myPage' _title: 'Իմ առաջին էջը D8-ում' requirements: _permission: 'access content'
example.my_page
- Սա երթուղու մեքենայական անունն է։ Ընդհանուր համաձայնությամբ մեքենայական անունները պետք է լինեն module_name.sub_name ձևաչափով։ Երբ կոդի այլ մասերը պետք է հղվեն երթուղուն, նրանք կօգտագործեն մեքենայական անունը։
path
- Սա մատնանշում է ձեր կայքում էջի ուղին։ Ուշադրություն դարձրեք սկիզբային շլեշին (/):
defaults
- Սա նկարագրում է էջի կոլբեքը և վերնագիրը։ @todo՝ Որտեղ կարող են փոխարինվել այս կանխորոշված արժեքները?
requirements
- Սա սահմանում է այն պայմանները, որոնց դեպքում էջը կցուցադրվի։ Դուք կարող եք նշել թույլտվությունները, պետք է միացված լինեն որոշ մոդուլներ և այլ պայմաններ։
Էջի իրականացում օրինակ մոդուլի համար
ExampleController կլասը պետք է սահմանվի example/src/Controller/ExampleController.php ֆայլում՝
<?php namespace Drupal\example\Controller; use Drupal\Core\Controller\ControllerBase; /** * Պաշտպանում է Example մոդուլի երթուղիների պատասխանները։ */ class ExampleController extends ControllerBase { /** * Վերադարձնում է պարզ էջ։ * * @return array * Պարզ ցուցադրվող զանգված։ */ public function myPage() { $element = array( '#markup' => 'Բարեւ, աշխարհ', ); return $element; } }
նamespace (հարցման տարածք)
- Այստեղ հայտարարվում է այն նախածանցը, որը անհրաժեշտ է կլասի լիարժեք անվանման համար։ Համեմատեք դոկումենտի բլոկը և կլասի անունը։ Ավտոարդյունահանողը գիտի, որ \Drupal\example\Controller\ExampleController կլասը գտնելու համար պետք է փնտրի modules/example/src/Controller/ExampleController.php ֆայլը։
use
- Սա թույլ է տալիս օգտագործել ControllerBase-ը լիարժեք անվան փոխարեն։ Սա դարձնում է class տողը շատ ավելի ընթեռնելի։
myPage()
- YAML ֆայլում նշված մեթոդը պետք է լինի հրապարակային։ Այն պետք է վերադարձնի ցուցադրվող զանգված։
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.