定制 mirko-pagliai/cakephp-essentials 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

mirko-pagliai/cakephp-essentials

Composer 安装命令:

composer require mirko-pagliai/cakephp-essentials

包简介

cakephp-essentials

README 文档

README

Software License CI codecov Codacy Badge

Various classes and useful utilities for various CakePHP projects.

Global functions

rtr()

rtr() is an acronym for "relative to root."

Returns a path relative to ROOT, useful for some output (e.g., commands).

For example:

rtr(ROOT . 'webroot/assets')

returns webroot/assets.

The function preserves any trailing slashes and throws exceptions for invalid paths (e.g. not relative to ROOT or not absolute).

toDate() and toDateTime()

These two functions ensure they always return a valid Date or DateTime instance.

They are useful when a variable may already be a valid instance or an argument to create an instance and allow you to avoid this:

if (!$dateTime instanceof DateTime) {
    $dateTime = new DateTime($dateTime);
}

//or

$date = $date instanceof Date ? $date : new Date($date);

simply by doing this:

$dateTime = toDateTime($dateTime);

//or

$date = toDate($date);

Request detectors

This plugin provides several very useful request detectors.

is('action') detector

Checks if $action matches the current action.

The $action argument can be a string or an array of strings. In the second case, it is enough that the action matches one of those.

Example:

$this->getRequest()->is('action', 'delete')

returns true if the current action is delete, otherwise false.

Example:

$this->getRequest()->isAction('action', 'edit', 'delete')

returns true if the current action is edit or delete, otherwise false.

Other "action detectors": is('add'), is('edit'), is('view'), is('index'), is('delete')

These are quick aliases for is('action') detectors.

Example:

$this->getRequest()->is('delete')

returns true if the current action is delete, otherwise false.

is('ip') detector

Checks whether the current client IP matches the IP or one of the IPs passed as an argument.

Example:

$this->getRequest()->is('ip', '99.99.99.99')

returns true if the current client IP is 99.99.99.99, otherwise false.

Example:

$this->getRequest()->isAction('ip', ['99.99.99.99', '11.11.11.11']);

returns true if the current client IP is 99.99.99.99 or 11.11.11.11, otherwise false.

is('localhost') detector

This is a quick alias for is('ip') detector.

Returns true if the current client IP matches localhost.

is('trustedClient') detector

This is a quick alias for is('ip') detector.

Returns true if it is a trusted client.

Before using this detector, you should write trusted clients into the configuration.

For example, in your bootstrap.php file,

Configure::write('trustedIpAddress', ['45.46.47.48', '192.168.0.100']);

At this point,

$this->getRequest()->isAction('trustedClient')

returns true if the current client IP matches one of these.

Extends the View

use Cake\Essentials\View\View;

class AppView extends View
{
}

If necessary, you can rewrite the default helpers by implementing the initialize() method and calling parent::initialize() before adding your own helpers.

class AppView extends View
    public function initialize(): void
    {
        parent::initialize();
    
        /**
         * These override any helpers defined by the parent.
         */
        $this->addHelper('Html');
        $this->addHelper('Form');
    }
}

Using Tooltips and Popovers

Several helper methods support tooltips and popovers and can generate them automatically.

Please refer to the Bootstrap documentation before using them (here and here).

Keep in mind that:

  1. both depend on the third-party library Popper, which you need to include, or you can use bootstrap.bundle.min.js which contains Popper;
  2. you will need to initialize both, as indicated in the documentation.
    You can include webroot/js/enable-popovers.js and webroot/js/enable-tooltips.js files in yourt layout, which will do it automatically:
echo $this->Html->script('/cake/essentials/js/enable-popovers.js');
echo $this->Html->script('/cake/essentials/js/enable-tooltips.js');

How to use Bake templates

In your config/bootstrap.php file:

Configure::write('Bake.theme', 'Cake/Essentials');

Or you can use the --theme option (or --t) with Cake/Essentials value.
Example:

bin/cake bake template ServiceStops -t Cake/Essentials -f

See also CakePHP Bake 2.x Cookbook.

mirko-pagliai/cakephp-essentials 适用场景与选型建议

mirko-pagliai/cakephp-essentials 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 6.31k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 03 月 30 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 mirko-pagliai/cakephp-essentials 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 mirko-pagliai/cakephp-essentials 我们能提供哪些服务?
定制开发 / 二次开发

基于 mirko-pagliai/cakephp-essentials 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 6.31k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 9
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-03-30