PDA

View Full Version : کدهای موجود در module.config



redhat2
پنج شنبه 23 شهریور 1391, 22:26 عصر
سلام به دوستان ، میخواستم بدونم که پارامترهای موجود در این فایل دقیقا چی هستند ، آیا یادگیری اونها لازم هست !!

return array(
'router' => array(
'routes' => array(
'home' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'Application\Controller\Index',
'action' => 'index',
),
),
),
// The following is a route to simplify getting started creating
// new controllers and actions without needing to create a new
// module. Simply drop new controllers in, and you can access them
// using the path /application/:controller/:action
'application' => array(
'type' => 'Literal',
'options' => array(
'route' => '/application',
'defaults' => array(
'__NAMESPACE__' => 'Application\Controller',
'controller' => 'Index',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'default' => array(
'type' => 'Segment',
'options' => array(
'route' => '/[:controller[/:action]]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
),
),
),
),
),
),
),
'service_manager' => array(
'factories' => array(
'translator' => 'Zend\I18n\Translator\TranslatorServiceFactory',
),
),
'translator' => array(
'locale' => 'en_US',
'translation_file_patterns' => array(
array(
'type' => 'gettext',
'base_dir' => __DIR__ . '/../language',
'pattern' => '%s.mo',
),
),
),
'controllers' => array(
'invokables' => array(
'Application\Controller\Index' => 'Application\Controller\IndexController'
),
),
'view_manager' => array(
'display_not_found_reason' => true,
'display_exceptions' => true,
'doctype' => 'HTML5',
'not_found_template' => 'error/404',
'exception_template' => 'error/index',
'template_map' => array(
'layout/layout' => __DIR__ . '/../view/layout/layout.phtml',
'application/index/index' => __DIR__ . '/../view/application/index/index.phtml',
'error/404' => __DIR__ . '/../view/error/404.phtml',
'error/index' => __DIR__ . '/../view/error/index.phtml',
),
'template_path_stack' => array(
__DIR__ . '/../view',
),
),
);


منظورم از پارامتر ها ، مثل router ، routs ، type ، option ، یا home هست !!

mtchabok
جمعه 24 شهریور 1391, 12:43 عصر
سلام
home نام روت هست مثل application . از این اسامی میتونید در لینکها استفاده کنید تا آدرسهای لینکهاتون به قالب روت آدرسدهی بشن .
type هم مربوط به نوع روت میشه که میتونه literal ، hostname و ... باشه . لینک (http://framework.zend.com/manual/2.0/en/modules/zend.mvc.routing.html)
route هم مسیر پردازشی رو مشخص میکنه و روتر با پردازش آدرس درخواست شده و مقایسه اون با این مسیر ، روت مورد نظر رو انتخاب و اجرا میکنه .
defaults مقادیر پیشفرض برای متغیرها هست که میتونیم هر چیزی رو تعریف کنیم و مقدار بهش بدیم که در فایل کنترلر توسط رکوئست بهش دسترسی داریم . ( بهتر هست که حتما مغیرهایی همچون controller و action مقدار پیش فرض داشته باشن .

redhat2
شنبه 25 شهریور 1391, 18:55 عصر
من با این مفاهیم روتر و روت اینا آشنایی ندارم ، میشه یه راهنمایی بکنید !

mtchabok
یک شنبه 26 شهریور 1391, 12:47 عصر
در زند فریم ورک برای تشخیص مسیر درخواستی بازدیدکننده از روتر استفاده میشه . به این صورت که روت های مختلف و با نام های متفاوتی رو برای روتر تعریف میکنیم سپس در هنگام تشخیص مسیر درخواستی بازدیدکننده ، روتر دونه دونه روتها رو بررسی میکنه هر کدوم از روتها که هماهنگی بیشتری با آدرس درخواستی داشتن به عنوان مسیر درخواستی تعیین شده و در روتر ثبت میشن و سپس کنترلر مربوط اجرا میشه .
نام های متفاوت در روتها به این دلیل هست که در زمان ایجاد آدرس از اونها استفاده بشه . زمانیکه میخواید آدرسی بنویسید میتونید بر اساس قالب روت آدرس رو تعریف کنید .
مثالی رو براتون میزنم از همین کانفیگی که گذاشتین :
اگه بازدید کننده آدرس

http://localhost/
رو درخواست بده روت home اجرا میشه چونکه در options->route شما / وجود داره یعنی اینکه تمامی آدرسها . که به اینصورت کنترلر

Application\Controller\Index
و اکشن index اجرا خواهد شد .
ولی اگه بازدیدکننده

http://localhost/application
رو درخواست بده اتفاق دیگه ای می افته و اونم اینه که برای روت application فرزندی قرار داده شده در این حالت روت application انتخاب شده و برای تعیین مسیر از روتهای درون child_routes استفاده خواهد شد که در اینجا ما داریم

/[:controller[/:action]]
یعنی اینکه اولین پوشه به عنوان نام کنترلر و دومین پوشه اگه وجود داشت به عنوان نام اکشن استفاده خواهد شد .
این روش فرزند برای موارد خاص استفاده میشه و طبق توضیح در کانفیگ برای عدم استفاده از ماژول هست .