PDA

View Full Version : حرفه ای: مشکل با اینکلود کردن فایلها در MVC



i-php-i
سه شنبه 03 خرداد 1390, 02:49 صبح
من از یه معماری سه لایه ای برای نوشتن برنامه استفاده می کنم. فایلی به نام control.php وظیفه کنترل درخواستها رو به عهده داره.

توی تابع مخرب باید فایلهای لایه نمایش رو اینکلود کنم. توی قسمت مخرب، قالب اصلی وب سایت (panel.php)رو اینکلود می کنم. توی این قالب، فایلهای مربوط به محتویات هر صفحه رو اینکلود می کنم. مشکلی که دارم اینه که قالب اصلی اینکلود می شه فایلهای مربوط به محتویات صفحه اینکلود نمی شه.

توی فایل panel.php کدی که برای اینکلود کردن حتویات استفاده می کنم این هست:


include_once('./temp/content/content1.php');


ترتیب قرار گیری پوشه ها به این صورت هست:


/admin
/admin/control.php
/admin/temp
/admin/temp/panel.php
/admin/temp/content
/admin/temp/content/content1.php
/admin/temp/content/content2.php
/admin/temp/content/content3.php






چطور این مشکل حل می شه؟

Mr.Moghadam
سه شنبه 03 خرداد 1390, 15:42 عصر
include_once('temp/content/content1.php');

i-php-i
سه شنبه 03 خرداد 1390, 17:06 عصر
include_once('temp/content/content1.php');
این روش رو تست کردم ولی جواب نمی ده. نمی دونید چرا این روش جواب نمی دیه؟

آیا اینکلود کردن توی معماری سه لایه ای شرایط خاصی داره؟

hercool
پنج شنبه 05 خرداد 1390, 10:32 صبح
برای رفتن به یک مسیر در معماری mvc از ds فکر کنم باید استفاده کنی

i-php-i
پنج شنبه 05 خرداد 1390, 12:24 عصر
برای رفتن به یک مسیر در معماری mvc از ds فکر کنم باید استفاده کنی
می شه بیشتر توضیح بدید.

چون توی mvc نمی تونم فایلها رو از مسیرهای دیگه اینکلود کنم.

hercool
پنج شنبه 05 خرداد 1390, 15:08 عصر
DIRECTORY_SEPARATORY
ثابت _DS : یک نام مستعار برای مقدار DIRECTORY_SEPARATORY هست. موارد استفادش در ساخت مسیر فولدرها و فایل هاست


require_once (JPATH_COMPONENT.DS.'controller.php');

i-php-i
پنج شنبه 05 خرداد 1390, 15:37 عصر
DIRECTORY_SEPARATORY
ثابت _DS : یک نام مستعار برای مقدار DIRECTORY_SEPARATORY هست. موارد استفادش در ساخت مسیر فولدرها و فایل هاست


require_once (JPATH_COMPONENT.DS.'controller.php');
الان روش شما رو تست کردم ولی بارم ارور داد.

ساختار فایلها و پوشه های من به شکل زیر هست.
فرض کنید که فایل control.php فایل panel.php رو توی خودش اینکلود می کنه.

فایل panel.php هم فایل content1.php رو توی خودش اینکلود می کنه.

در اینصورت چطور باید از کد شما استفاده کنم تا مسیر اصلی همه فایلها، پوشه admin در نظر گرفته بشه؟

/admin
/admin/control.php
/admin/temp
/admin/temp/panel.php
/admin/temp/content
/admin/temp/content/content1.php
/admin/temp/content/content2.php
/admin/temp/content/content3.php

mlf_mlv
پنج شنبه 05 خرداد 1390, 21:01 عصر
من همیشه اینطوری می نوشتم جواب می داد،
البته بهتره از فریم ورک هایی که با mvc سازگاری دارن استفاده کنید که به کد های اضافه نیازی نداشته باشید.