Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Composer自动加载:在产品中找不到类,本地作品_Php_Wordpress_Composer Php - Fatal编程技术网

Php Composer自动加载:在产品中找不到类,本地作品

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

我读了很多关于我的问题的文章,但是我找不到正确的解决办法

我编写了自己的wordpress插件,并使用了composer。在本地它可以正常工作,但当我将我的项目上传到我的Web服务器时,我收到一条关于找不到类的错误消息

在/wp-content/plugins/my-own-hooks/MyOwnHooks.php中找不到MyOwnHooks

我的存储库目录:

  • 可湿性粉剂含量/
    • 插件/
      • 我自己的钩子/
        • 卖主/
        • 公司/
          • php/
            • MyOwnHooks.php
            • GoogleContactsHelper.php
            • MyContact.php
            • MyPhoneNumber.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'如果生产系统上配置的
包含路径不同