• 1399/05/08

عملیات include , autoload,view :

 با سلام خدمت استاد گرامی

من متوجه نمیشم تفاوت سه تابعی include, autoload,view ظاهرا هر سه تابع قرار هست یک صفحه یا یک کلاس را الحاق نمایند

و سوال بعد اینکه در تابع autoload از document_root استفاده شده چرا؟؟؟ من متوجه نشدم

از زحمات شما تشکر بسیار دارم

 

  • 1399/05/08
  • ساعت 16:19

با سلام خدمت شما همراه عزیز

 

ببینید view برای رندر کردن یک صفحه کامل html هست یعنی همون صفحاتی که قراره کاربر ما ببینه

 

include برای رندر کردن یک صفحه کامل html داخل یک صفحه دیگه هست 

 

مثلا فرض کنید ما یک صفحه لاگین داریم ولی هدر فوتر نداره فقط فرم لاگینه

 

هدر و فوتر با include اضافه میشن خوده اون فرمه با view

 

درمورد autoload هم ربطی به این ها نداره autoload وظیفه اجرای کلاس های php که ما نوشتیم رو داره

 

 

 

چون ادرس کامل فولدر هامونو میخواستیم 

لینک زیر رو ملاحظه بفرمایید و از documentroot یک var_dump بگیرید ببینید دقیقا چی برمیگردونه کامل متوجه میشید

https://stackoverflow.com/questions/7229783/difference-between-serverdocument-root-and-serverhttp-host


  • 1399/06/13
  • ساعت 01:10

درود بر شما

من هرچی سعی کردم پرسش جدید ثبت کنم نشد مجبور شدم اینجا بپرسم

این کد شما رو میشه


spl_autoload_register(function($className){

  $className = str_replace("\\" , DIRECTORY_SEPRATOR, $className);
  include_once $_SERVER['DOCUMENT_ROOT'] . '/mvc/' . $className . '.php';

});
به شکل زیر نوشت؟

spl_autoload_register(function($className){
$loc=getcwd();
$classLoc = str_replace("\\" , '/', $loc);
include_once $classLoc.'/'.$className;

 

الان به روش شما جلو میرم اما برای بعد ها میپرسم


  • 1399/06/13
  • ساعت 12:19

با سلام خدمت شما همراه عزیز

 

بهتره مثل بنده بنویسید تا بعدا به مشکل نخورید

 

پروژه که تموم شد هرچقد خواستید میتونید تغییرش بدید


  • 1399/09/25
  • ساعت 09:16

استاد سلام در autoloader فرموديد ميشه از متغيري كه در config به نام $base_dir ساختيم استفاده كنيم و ديگه نام پوشه كه اينجا مثلا mvC هست استفاده نكنيم ولي من هر كاري ميكنم اين متغير رو در اينجا نميشناسه

<?php
namespace System\Bootstrap;

class AutoLoad
{

    public function autoloader()
    {
        global $base_dir;
        spl_autoload_register(function ($className){
           $className=str_replace('\\',DIRECTORY_SEPARATOR,$className);
           include_once $_SERVER['DOCUMENT_ROOT'].$base_dir.$className.'.php';
        });
    }
}


  • 1399/09/25
  • ساعت 09:23

با سلام خدمت شما همراه عزیز

 

 

در پروژه اصلی خدمتتون میگیم‌چجوری استفاده کنید به روش بهینه تر


logo-samandehi