levare/modules

此软件包已被废弃,不再维护。未建议替代软件包。

Laravel 4 的模块管理器

1.1.4 2013-07-16 15:41 UTC

This package is not auto-updated.

Last update: 2016-06-19 07:31:06 UTC


README

Modules 是 Laravel 版本 4 的模块管理工具。

你喜欢我的工作? https://www.gittip.com/abstractFlo/

此软件包不再开发。我创建了一个具有更好功能和更简单语法的全新软件包。测试完成后,我将在此处提供链接!

变更日志 1.1.3

  • 添加了全局命名空间加载

您可以在 module.json 中添加一个数组

"global": [

]

在此,您可以加载您希望从模块中加载的每个文件夹。例如

"global": [
    "Controller"
]

现在 ModuleManager 将目录添加到 Laravel 类加载器中。您现在可以访问全局命名空间中的所有类,而无需添加任何命名空间。

示例
<php

class StartController extends BaseController {

    public function showWelcome()
    {
        return View::make('hello');
    }

}

变更日志 1.1.0

  • 重写了软件包
为什么重写软件包

在前一个版本中有一个我未考虑到的错误。这是一个关于文件夹和文件名的大小写的问题。在 Laravel 3 中,命名空间是否不区分大小写。但在 4 的 Laravel 中不是。

现在,这个软件包的设计是

这究竟意味着什么

命名空间表示文件夹和文件重命名。换句话说,如果您有以下命名空间

namespace Modules\Dashboard\Controller\Admin

那么文件夹的路径也必须写成

root/levare/Modules/Dashboard/Controller/Admin

对于文件也是一样

use Modules\Dashboard\Controller\Admin\Start

以及文件的路径

root/levare/Modules/Dashboard/Controller/Admin/Start.php

请阅读安装部分

变更日志 1.0.2

  • 添加了 registerFolders() 方法
  • 添加了权限检查到 checkModules() 方法
  • 移除了 getPath() 方法
详细更改

registerFolder()

此方法注册了可能添加到 Laravel 命名空间类中所需的所有文件夹。具体来说,以下类

  • 视图
  • 配置
  • 翻译

这允许您使用软件包风格的模块处理方式,例如 Config::get('module::config.item');

权限检查

权限检查检查模块文件夹是否可写。如果是这样,将复制所有必要的文件,否则,应用程序将停止并出现错误。(仅限于调试模式)

getPath()

自动文件夹注册使此方法已弃用。

安装

要获取 Modules 的最新版本,只需在您的 composer.json 文件中添加它。

"levare/modules": "dev-master"

之后,您需要运行 composer install 下载最新版本并更新自动加载器。

一旦安装了 Modules,您需要将服务提供者注册到应用程序中。打开 app/config/app.php 并搜索 providers 键。

'providers' => array(
    // your other Providers
    'Levare\Modules\ModulesServiceProvider'
)

模块还提供了一个门面,帮助您管理您的模块。您可以在 app/config/app.php 文件的 alias 键中注册门面。

'aliases' => array(
    // your other aliases
    'Module' => 'Levare\Modules\Facades\Modules'
)

最后但同样重要的是。将命名空间添加到您的 composer.json 文件中。在该文件中搜索 autoload 键。如果您使用自定义模块文件夹位置,将 levare/ 改为 app/(假设您的模块文件夹位置是:app/Modules)

"autoload": {
    // Other Stuff for Autoload

    // If PSR-0 not exists then create it
    "psr-0": {
        "Modules": "levare/"
    }
}

运行 composer dump-autoload 以注册新的命名空间。

如何使用

使用此包有一个简单的方法。在您的根目录中创建一个名为 levare 的新文件夹,并在 levare 中创建一个名为 Modules 的文件夹。就是这样!

要使用自定义模块文件夹位置

php artisan config:publish levare/modules

然后在:app/config/packages/levare/config.pphp

<?php
return array(

    'module_folder_location' => 'your-location-here', //example app/modules, levare/modules

);

现在您可以通过简单的方式创建一个模块。向 Modules 中添加一个新的文件夹,并请求您的网站。模块管理器会为您做其他所有事情。它会创建所有需要的文件并注册模块。

您现在可以添加特定的文件夹,如 ControllersModelsviews 等。

module.json 文件

此文件包含您模块的所有信息。您可以通过将文件名/路径添加到 autoloader 键来自动加载您需要的所有文件。

"autoloader": [
    "routes.php",
    "helpers.php",
    "folder/file.php"
]

您可以从模块中加载您想要的任何内容。

重要

任何模块的命名空间为 Modules\ModuleNameE\FolderName

检查您的模块文件夹及其所有内容是否具有 chmod 775 权限!

忘记了什么?

写一封电子邮件或创建一个问题。