jaxon-php/jaxon-cake

Jaxon 库集成于 CakePHP 3 框架

v4.0.0 2022-07-30 14:29 UTC

README

此包将 Jaxon 库 集成到 CakePHP 框架中。

安装

此包的版本 4 需要 CakePHP 版本 4。

使用 Composer 安装此包。

composer require jaxon-php/jaxon-cake ^5.0

或者

{
    "require": {
        "jaxon-php/jaxon-cake": "^5.0",
    }
}

运行 composer install

src/Application.php 文件中加载 Jaxon 插件。

    /**
     * Load all the application configuration and bootstrap logic.
     *
     * @return void
     */
    public function bootstrap(): void
    {
        ...

        // Load more plugins here
        $this->addPlugin(\Jaxon\Cake\JaxonPlugin::class, ['routes' => true]);
    }

src\View\AppView.php 文件中加载 Jaxon 视图辅助器。

    /**
     * Initialization hook method.
     *
     * Use this method to add common initialization code like loading helpers.
     *
     * e.g. `$this->loadHelper('Html');`
     *
     * @return void
     */
    public function initialize(): void
    {
        $this->loadHelper('Jaxon/Cake.Jaxon');
    }

路由和中间件

此包提供两个中间件,一个用于加载 Jaxon 配置,另一个用于处理 Jaxon 请求。Jaxon 配置中间件必须附加到所有启用 Jaxon 功能的页面的路由上,而后者必须附加到处理 Jaxon 请求的控制器的操作上。

use Jaxon\Cake\Middleware\ConfigMiddleware as JaxonConfigMiddleware;

$routes->scope('/', function (RouteBuilder $builder) {
    // Register Jaxon middlewares
    $builder->registerMiddleware('jaxon.config', new JaxonConfigMiddleware());

    // Apply the "jaxon.config" middleware to routes to pages that require Jaxon.
    $builder->applyMiddleware('jaxon.config');

    ...
});

用法

config/jaxon.php 配置文件中的设置分为两个部分。在 lib 部分的选项是 Jaxon 核心库的选项,而在 app 部分的选项是 CakePHP 应用的选项。

以下选项可以在配置文件的 app 部分中定义。

默认情况下,views 数组为空。视图从框架默认位置渲染。在 directories 数组中有一个条目,其值如下。

用法

JavaScript 和 CSS 代码

Jaxon 视图辅助器提供了将 Jaxon JavaScript 和 CSS 代码插入页面的函数。

<!-- The Jaxon CSS code -->
<?= $this->Jaxon->css() ?>
<!-- The Jaxon javascript includes -->
<?= $this->Jaxon->js() ?>
<!-- The Jaxon javascript code -->
<?= $this->Jaxon->script() ?>

Jaxon 类

Jaxon 类可以继承自 \Jaxon\App\CallableClass。默认情况下,它们位于 CakePHP 应用程序的 ROOT/jaxon/App 目录中,关联的命名空间为 \Jaxon\App

以下是一个 Jaxon 类的示例,定义在 ROOT/jaxon/App/HelloWorld.php 文件中。

namespace Jaxon\App;

class HelloWorld extends \Jaxon\App\CallableClass
{
    public function sayHello()
    {
        $this->response->assign('div2', 'innerHTML', 'Hello World!');
        return $this->response;
    }
}

贡献

  • 问题跟踪器:github.com/jaxon-php/jaxon-cake/issues
  • 源代码:github.com/jaxon-php/jaxon-cake

许可证

此包采用 BSD 许可证。