Php Composer自动加载:在产品中找不到类,本地作品
我读了很多关于我的问题的文章,但是我找不到正确的解决办法 我编写了自己的wordpress插件,并使用了composer。在本地它可以正常工作,但当我将我的项目上传到我的Web服务器时,我收到一条关于找不到类的错误消息 在/wp-content/plugins/my-own-hooks/MyOwnHooks.php中找不到MyOwnHooks 我的存储库目录:Php Composer自动加载:在产品中找不到类,本地作品,php,wordpress,composer-php,Php,Wordpress,Composer Php,我读了很多关于我的问题的文章,但是我找不到正确的解决办法 我编写了自己的wordpress插件,并使用了composer。在本地它可以正常工作,但当我将我的项目上传到我的Web服务器时,我收到一条关于找不到类的错误消息 在/wp-content/plugins/my-own-hooks/MyOwnHooks.php中找不到MyOwnHooks 我的存储库目录: 可湿性粉剂含量/ 插件/ 我自己的钩子/ 卖主/ 公司/ php/ MyOwnHooks.php GoogleContact
- 可湿性粉剂含量/
- 插件/
- 我自己的钩子/
- 卖主/
- 公司/
- php/
- MyOwnHooks.php
- GoogleContactsHelper.php
- MyContact.php
- MyPhoneNumber.php
- php/
- myownhooks.php
- 我自己的钩子/
- 插件/
/wp-content/plugins/my-own-hooks/myownhoks.php
:
<?php
namespace futur22\MyOwnHooksPlugin;
class MyOwnHooks {
public function init() {
\add_action ( 'wp_head', array (
$this,
'moh_incomplete_profile_script_code'
) );
}
public static function runner() {
$pluginx = new MyOwnHooks ();
$pluginx->init ();
}
public function moh_incomplete_profile_script_code() {
// print something
}
}
<?php
/**
* Plugin Name: MyOwnHooks
*/
require_once __DIR__ . "/vendor/autoload.php";
use futur22\MyOwnHooksPlugin\MyOwnHooks;
MyOwnHooks::runner ();
?>
/wp content/-plugin/my-own hooks/inc/php/myownhoks.php
:
<?php
namespace futur22\MyOwnHooksPlugin;
class MyOwnHooks {
public function init() {
\add_action ( 'wp_head', array (
$this,
'moh_incomplete_profile_script_code'
) );
}
public static function runner() {
$pluginx = new MyOwnHooks ();
$pluginx->init ();
}
public function moh_incomplete_profile_script_code() {
// print something
}
}
<?php
/**
* Plugin Name: MyOwnHooks
*/
require_once __DIR__ . "/vendor/autoload.php";
use futur22\MyOwnHooksPlugin\MyOwnHooks;
MyOwnHooks::runner ();
?>
令人困惑的是,它可以在本地使用XAMPP,但不能在Linux系统上使用。每次我更改代码并将其从存储库中取出时,我都会删除composer.lock和vendor目录以运行composer安装
XAMPP和生产服务器都有PHP7.3.x
这里怎么了
谢谢您的帮助。我认为您应该添加“使用代码”; 使用futur22\MyOwnHooksPlugin\MyOwnHooks;
但是代码应该放在最上面 谢谢你的帮助性评论 我的问题通过更改文件和停用W3 Total Cache得到修复
myownhooks.php
:
<?php
namespace futur22\MyOwnHooksPlugin;
class MyOwnHooks {
public function init() {
\add_action ( 'wp_head', array (
$this,
'moh_incomplete_profile_script_code'
) );
}
public static function runner() {
$pluginx = new MyOwnHooks ();
$pluginx->init ();
}
public function moh_incomplete_profile_script_code() {
// print something
}
}
<?php
/**
* Plugin Name: MyOwnHooks
*/
require_once __DIR__ . "/vendor/autoload.php";
use futur22\MyOwnHooksPlugin\MyOwnHooks;
MyOwnHooks::runner ();
?>
我删除了vendor/
和composer.lock
。然后再次使用composer安装
。我还使用了composer dump autoload
,这只是为了确定。从那时起,我的网站又开始工作了
谢谢。我在自动加载配置与自动加载配置中看到的一个不同之处是,它们的路径以斜杠结尾,所以可能尝试一下
“inc/php/”
吧,你试过运行吗?最后,我还想将你的myownhooks.php
改为使用require\u once\u DIR\uuuuuuuuuuuuuuu/供应商/autoload.php'代码>如果生产系统上配置的包含路径不同