phillaf/gtw_require

CakePHP 的 Require.js 插件

维护者

详细信息

github.com/Phillaf/GtwRequire

源代码

安装: 24

依赖者: 0

建议者: 0

安全性: 0

星星: 1

关注者: 2

分支: 0

类型:cakephp-plugin

dev-master 2013-11-09 21:09 UTC

This package is not auto-updated.

Last update: 2024-09-23 15:15:34 UTC


README

此模块通过 Require helper 简化了 Requirejs 的使用。

  • 可以从视图或视图块中添加模块。
  • 定义自己的配置文件,根据需要加载模块。
  • 基于操作/控制器名称自动加载模块的可能性。

安装

将此插件复制到名为 app/Plugin/GtwRequire 的文件夹中,或将以下行添加到您的 composer.json 文件中

{
    "require": {
        "phillaf/gtw_require": "*@dev"
    }
}

通过运行 Console/cake symlink 或以下命令从该插件的 webroot 创建到应用 webroot 的符号链接

# On windows
mklink /J app\webroot\GtwRequire app\Plugin\GtwRequire\webroot

# On linux
ln -s app/Plugin/GtwRequire/webroot app/webroot/GtwRequire

通过在 app/Config/bootstrap.php 中添加以下行来加载插件

CakePlugin::load('GtwRequire');

将 Require helper 添加到您的 AppController.php 中

public $helpers = array(
    'Require' => array('className' => 'GtwRequire.GtwRequire'),
);

包含 JavaScript

创建一个符合 requirejs 规范的配置文件。您可以在 这里 找到更详细的示例。

// app/webroot/js/config.js
requirejs.config({
    baseUrl: 'js/lib',
    paths: {
        app: '../app',
        basepath: '/GtwRequire/js/basepath' //application base path
    }
});

使用 req 函数从您的视图、视图块和元素中加载模块。

<?php echo $this->Require->req('my/module'); ?>

在布局文件的底部加载主要的 requirejs 模块。参数是您的配置文件路径。

<?php echo $this->Require->load('/js/config');?>

req() 函数只能在 load() 之前调用。然而,在某些情况下(例如 AJAX 视图),您可能需要动态添加模块。为此,您可以使用

<?php echo $this->Require->ajax_req('my/module');?>

路径特定的包含

如果您想自动加载特定操作或控制器文件,您可以创建一个类似于 Views 中使用的文件夹结构。

├── lib
│   └── library1.js
│   └── library2.js
├── app
│   └── homemade1.js
│   └── homemade2.js
├── base
│   ├── Example /* folder containing ExampleController.php actions */
│   │   ├── someaction.js
│   │   ├── otheraction.js
│   ├── base.js
│   ├── ExampleController.js
│   ├── AnotherController.js
└── require.js

要启用自动加载,请在您的 load() 调用上方调用以下函数。第一个参数是您的文件夹结构的基准路径,第二个参数是默认文件的名称。

<?php echo $this->Require->basemodule('basePath', 'baseModuleName');?>

应用基准路径

有时您需要从 JavaScript 中调用控制器和操作。为了保持您的 .js 模块在子域名托管网站上功能正常,使用 basepath 为您的调用添加前缀。下面是如何使用模块利用这个的示例:--

require(['jquery','basepath'], function ($, basepath) {
    $('.something').click(function(){
        $.get( basepath+ "plugin_name/controller_name/action_name/", function(data){
            // do things
        });
    });
});

版权和许可证

作者:Philippe Lafrance
版权 2013 Gintonic Web
根据 Apache 2.0 许可证 许可