Way to require an autoload in one file on a Prestashop module?

前端 未结 2 1553
-上瘾入骨i
-上瘾入骨i 2021-01-16 03:53

I\'m trying to use a set of libraries with Composer for a Prestashop module.

My current approach is to include the vendor/autoload.php file on every fil

相关标签:
2条回答
  • 2021-01-16 04:26

    I've found the way to do it!

    The actionDispatcher hook was working for me with models, hooks, but not with controllers.

    Seems like there is a not documented hook called moduleRoutes which loads before any controller.

    So I've been able to autoload in all my module's classes this way:

    <?php
    
    if (!defined('_PS_VERSION_'))
        exit;
    
    //_PS_MODULE_DIR_
    
    require_once __DIR__.'/vendor/autoload.php'; // Autoload here for the module definition
    
    class MyCustomModule extends Devnix\Prestablocks\Module { // My custom Prestashop framework (in experimental phase, https://github.com/devnix/prestablocks)
    
      // ...
    
      public function install() {
        return
          parent::install() &&
          $this->registerHook('moduleRoutes'); // Register the hook
      }
    
    
      public function hookModuleRoutes() {
        require_once __DIR__.'/vendor/autoload.php'; // And the autoload here to make our Composer classes available everywhere!
      }
    
    0 讨论(0)
  • 2021-01-16 04:26

    Maybe to re-route all scripts to one using htaccess/rewrite, then in that one before including prestashop files use autoload.

    0 讨论(0)
提交回复
热议问题