Various classes and useful utilities for various CakePHP projects.
- Global functions
- Request detectors
- Extends the View
- Using Tooltips and Popovers
- How to use Bake templates
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).
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);This plugin provides several very useful request detectors.
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.
These are quick aliases for is('action') detectors.
Example:
$this->getRequest()->is('delete')returns true if the current action is delete, otherwise false.
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.
This is a quick alias for is('ip') detector.
Returns true if the current client IP matches localhost.
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.
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');
}
}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:
- both depend on the third-party library Popper, which you need to include, or you can use
bootstrap.bundle.min.jswhich contains Popper; - you will need to initialize both, as indicated in the documentation.
You can includewebroot/js/enable-popovers.jsandwebroot/js/enable-tooltips.jsfiles 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');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 -fSee also CakePHP Bake 2.x Cookbook.