Php 如何使joudi/Laravel-H5P工作以实现H5P文件的编辑器?

Php 如何使joudi/Laravel-H5P工作以实现H5P文件的编辑器?,php,laravel,laravel-5,Php,Laravel,Laravel 5,我一直试图在不使用任何Drupal/Moodle/Wordpress插件的情况下实现内容编辑器 我基本上停留在(应该解决的)中描述的与H5PFrameworkInterface不兼容的一点上。以下是我所做的: composer创建项目laravel/laravel=“5.5.*”我的项目 作曲家需要djoudi/laravel-h5p 将两对{}替换为[](可能取决于PHP版本): /vendor/h5p/h5p core/h5p.classes.php,第2747行 /vendor/h5

我一直试图在不使用任何Drupal/Moodle/Wordpress插件的情况下实现内容编辑器

我基本上停留在(应该解决的)中描述的与
H5PFrameworkInterface
不兼容的一点上。以下是我所做的:

  • composer创建项目laravel/laravel=“5.5.*”我的项目

  • 作曲家需要djoudi/laravel-h5p

  • 将两对
    {}
    替换为
    []
    (可能取决于PHP版本):

    • /vendor/h5p/h5p core/h5p.classes.php
      ,第2747行
    • /vendor/h5p/h5p core/h5p development.class.php
      ,第70行
  • php artisan供应商:发布

  • php artisan迁移

  • 将这些行添加到
    composer.json
    中的
    autoload/classmap

    "vendor/h5p/h5p-core/h5p-default-storage.class.php",
    "vendor/h5p/h5p-core/h5p-development.class.php",
    "vendor/h5p/h5p-core/h5p-event-base.class.php",
    "vendor/h5p/h5p-core/h5p-file-storage.interface.php",
    "vendor/h5p/h5p-core/h5p.classes.php",
    "vendor/h5p/h5p-editor/h5peditor-ajax.class.php",
    "vendor/h5p/h5p-editor/h5peditor-ajax.interface.php",
    "vendor/h5p/h5p-editor/h5peditor-file.class.php",
    "vendor/h5p/h5p-editor/h5peditor-storage.interface.php",
    "vendor/h5p/h5p-editor/h5peditor.class.php"
    
  • 将此行添加到
    config/app.php
    中的
    提供程序中:

    
    Djoudi\LaravelH5p\LaravelH5pServiceProvider::class

  • php artisan make:auth

  • 执行以下操作

    cd public
    mkdir vendor
    cd vendor
    mkdir h5p
    cd h5p
    ln -s ../../../storage/h5p/content
    ln -s ../../../storage/h5p/editor
    ln -s ../../../storage/h5p/libraries
    
  • 我还尝试在
    composer.json
    中指定包的2.0版本(这需要使用Laravel5.8)。从技术角度看,这似乎更好一些,但我也没有安装任何库或创建任何H5P内容。基本上,我上传的任何H5P库似乎都被识别为有效的H5P文件,提取zip文件也可以,但没有找到/安装库


    如何使此项目和Laravel的任何组合都能工作?

    您应该确保在中列出了php配置。 您需要安装以下PHP扩展:

    • ZipArchive(强制)
    • mbstring(必填)
    • openssl(可选)
    在文件“C:\laragon\www\h5pintegration\vendor\djoudi\laravel-h5p\src\LaravelH5p\Storages\LaravelH5pStorage.php”中,函数“saveFileFromZip($path,$file,$stream)”应包含以下代码:

    /**
       * Store the given stream into the given file.
       *
       * @param string $path
       * @param string $file
       * @param resource $stream
       * @return bool
       */
      public function saveFileFromZip($path, $file, $stream){
        // Add filename to path
        $absolutePath = $path.'/'.$file;
        $newDirPath = preg_replace("/\/[^\/]+\/?$/", '', $absolutePath);
        if (!self::dirReady($newDirPath)) {
          throw new \Exception('unabletocopy');
        }
    
        if ($stream) {
          file_put_contents($absolutePath, $stream);
        }
    
        return true;
      }
    
    (我应该提出拉车请求,我还不知道怎么拉)

    当你有了它,你可以看到在行动的包http://localhost/h5p

    现在可以加载库了

    您可以从以下位置获取h5p库:

    • 选择一个并单击
    • 当示例打开时,单击“重用”(上下文的左下角)
    • 单击“作为.h5p文件下载”
    上载.h5p文件的内容表单时,它将加载所有依赖的库

    这就是我目前得到的

    我发现它是djoudi/Laravel-h5p2.0的一个分支,但是它已经更新了


    希望有帮助

    作为一个很好的提示:永远不要编辑供应商中的任何内容。它将无法通过以下调用
    composer install
    继续运行。此外,到底是什么不起作用?您是否可以分享任何错误消息?谢谢,我知道这一点,只是我仍处于评估阶段:到目前为止,我甚至不确定这个应用程序在工作时到底应该做什么。我没有包含错误消息,但在我的问题中有一个指向GitHub上相应问题的链接。非常感谢您,很抱歉回复太晚,我正在旅行,不知道在我使用的设备上不会收到来自SO的通知。我可能会在周一对此进行研究并给出反馈。我使用Djoudi软件包的版本2上传了一个库。但是,我无法创建内容。对于Exatech软件包,由于数据库问题,我还不能添加任何库。但是,我使用与Djoudi软件包相同的数据库(包括我刚刚上传的库)创建了一个内容(在使用
    php artisan make:auth添加了身份验证系统之后)。我想在用这些软件包构建一个工作的H5P编辑器之前,还有很多工作要做。Exatech软件包似乎是一个更有希望的起点。