真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php命名空間自動(dòng)加載后使用單獨(dú)類include使用

普通的命名空間自動(dòng)加載后,又對框架不熟,在M層或者C層想include直接調(diào)用第三方類時(shí)通常都不行會(huì)報(bào)錯(cuò)。原因是有命名空間和自動(dòng)加載這兩個(gè)php特性制約。

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、河?xùn)|ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的河?xùn)|網(wǎng)站制作公司

要解決這兩個(gè)問題就只要兩步即可,但當(dāng)然在正規(guī)項(xiàng)目中不建議使用,要遵循MVC和PCR-0(1.只有一個(gè)入口文件;2.在類文件中不能使用直接實(shí)現(xiàn)方法的寫法;3.命名空間與絕對路徑一致)法則,這只是一個(gè)偏門技巧。

解決方法

  1. 在include文件后,用spl_autoload_unregister()把自動(dòng)加載的函數(shù)注銷掉;

    如:spl_autoload_unregister('\\Test\\Loader::autoload');

   但在運(yùn)用完第三方類的時(shí)候要馬上把之前的自動(dòng)加載函數(shù)運(yùn)行一次,不然其他方法加載不了會(huì)報(bào)錯(cuò)。

        \main\Test1::test();

spl_autoload_register('\\Test\\Loader::autoload');

2.   第三方類要加上單獨(dú)的命名空間,不然在使用的時(shí)候會(huì),include類會(huì)以當(dāng)前的命名空間來使用。如果加載類不是在跟當(dāng)前命名空間同一個(gè)目錄,就會(huì)報(bào)錯(cuò)。

貼其中一個(gè)類代碼:

namespace Test;

class Factory
{
	
	public static function createDatabase()
	{
		$db = new Database();
		Register::set('db1',$db);
		include BASEDIR.'/Test1.php';
		spl_autoload_unregister('\\Test\\Loader::autoload');
		\main\Test1::test();
		spl_autoload_register('\\Test\\Loader::autoload');
		
		return 	$db;
	}	
}

最終還是叮囑不建議程序用這個(gè),盡量遵守面向過程的編程方法。


當(dāng)前文章:php命名空間自動(dòng)加載后使用單獨(dú)類include使用
分享URL:http://weahome.cn/article/pipdhd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部