我想用作曲家維護一個簡單的WordPress插件的文件。該插件代碼使用三個文件:作曲家自動加載包括不正確的版本
dmg_custom_menu_widget.php
- 需要的類和註冊與WordPressWP_Custom_Menu_Widget.php
該插件的文件 - 主窗口部件類WP_Widget_Base.php
- 由WP_Custom_Menu_Widget.php
我延長使用作曲家安裝插件代碼並獲取依賴關係。
如果文件被dmg_custom_menu_widget.php
使用自動加載作曲文件中像這樣包括:
require_once 'vendor/autoload.php';
我得到一個「致命錯誤:調用未定義的方法......」,因爲它包括使用老版本的WP_Widget_Base.php
通過dmg-custom-menu-widget的基本目錄之外的另一個小部件插件。
如果文件是直接由dmg_custom_menu_widget.php
使用包括:
require_once 'vendor/DMG/WP_Widget_Base/src/WP_Widget_Base.php';
require_once 'src/WP_Custom_Menu_Widget.php';
我沒有得到任何錯誤,因爲正確的文件是包括在內。
這是相關的文件夾結構:
plugins/
dmg-related-pages-widget/
vendor/
DMG/
WP_Widget_Base/
src/
WP_Widget_Base.php <- File being included
dmg-custom-menu-widget/
dmg_custom_menu_widget.php <- Calls require_once 'vendor/autoload.php'
vendor/
autoload.php <- Composer autoload file
DMG/
WP_Widget_Base/
src/
WP_Widget_Base.php <- File that should be included
其他信息
如果該文件夾dmg-related-pages-widget
被刪除,正確的文件是包括在內。
Composer.json
{
"name" : "DMG/WP_Custom_Menu_Widget",
"license" : "GPL-3.0",
"repositories":
[
{
"type": "git",
"url": "https://[email protected]/dgifford/wp_widget_base.git"
}
],
"require":
{
"DMG/WP_Widget_Base" : "dev-master"
},
"autoload":
{
"classmap":
[
"src/WP_Custom_Menu_Widget.php"
]
}
}
你可以加你'composer.json'嗎?我想你自己加了這個插件的自動加載,對吧? – vfsoraki
我已經添加了composer.json文件。自動加載由作曲家完成。 – theHands