a檔案包含b檔案,b檔案以相對路徑包含c檔案。那麼。b中相對路徑是相對哪個檔案而言呢?
在其他程式語言中。處理方式是:b檔案的中的相對路徑是相對b檔案而言的。這樣的好處是可以開發出與路徑無關的程式包。
而在php中。則是相對於當前工作目錄而言的。所以,b檔案的中的相對路徑是相對a檔案而言的。
在thinkphp中的使用:
在入口檔案index.php中必須要定義常量。比如**是:define('think_path', '');
為什麼呢?比如,整個框架是在乙個資料夾thinkphp中。index.php中載入thinkphp.php檔案後。thinkphp.php這個框架入口檔案裡面會載入框架中其他所需的庫。由於thinkphp.php使用的是相對路徑載入其他檔案,按照php的處理機制。那麼這個相對就是相對於index.php的。而不是相對於thinkphp.php檔案(如果是相對它的話。那麼就不是必須定義think_path常量了)。所以,需要載入框架其他檔案。直接使用類似下面的方式:require think_path."/common/runtime.php";
設計方式學習:
在php中。相對路徑是相對於當前工作目錄的檔案的。哪個是最終要執行的檔案。a需要b,b需要c。那麼a才是主檔案。就可以理解成當前工作目錄的檔案。
所以,開發通用的包的話。可以考慮使用者定義乙個常量。那麼整個程式包裡面的檔案都用到這個常量作為路徑載入其他檔案。
VMware License Server使用經驗
近期在測試vmware server,在使用vmware license server的時候碰到一些問題,經過兩天的實驗,問題得以解決,現記錄如下,以供朋友們參考。1 複製license檔案 在安裝vmware virtualcenter的時候,會一同安裝license server伺服器。如果你在...
Django Rest framework使用例項
一 修改配置檔案 setting.py django.contrib.admin django.contrib.auth django.contrib.contenttypes django.contrib.sessions django.contrib.messages django.contri...
Android AlarmManager 使用指南
intent intent new intent intent.setaction updatemgr.check update action 如果你的flag 是flag one shot,那麼你就只能受到一次廣播。如果使用setrepeat,你設定的intervalmills 少於60s,那麼就...