cnizzardini/cakephp-yummy

Yummy plugin for CakePHP including an intuitive search, ACL, and bake theme


Keywords
cakephp3, cakephp3 search, cakephp3 acl, cakephp3 bake, admin-portal, cakephp, cakephp-acl, cakephp-bake, cakephp-helper, cakephp-plugin, cakephp-search
License
MIT

Documentation

Yummy plugin for CakePHP

Software License Code Climate Issue Count

A delightfully tasty plugin for your CakePHP 3 project including a group-based Access Control List (ACL), a search component with an intuitive user-interface, and boostrap 3 Bake Themes. Each of these components may be used separately.

Demo & Docs

Live Demo available and fully documented in the git wiki.

Features

YummySearch

A search component designed to work with CakePHPs Paginator Component and Cake\ORM\Query. It supports searching the base model and other associations such as HasOne, BelongsTo, and HasMany through an intuitive UI in just three easy steps.

yummy search screenshot

// Step 1. Basic Controller Usage:
$query = $this->ModelName->find();

$this->loadComponent('Yummy.YummySearch',[
    'query' => $query,
    'allow' => [
        'Table.column' => ['name' => 'Column Name'],
    ]
]);

$results = $this->paginate($this->YummySearch->search($query));

// Step 2. Basic View Usage:
$this->helpers()->load('Yummy.YummySearch');
echo $this->YummySearch->basicForm();

// Step 3. Include agnostic JavaScript
<script src="/yummy/js/yummy-search.js"></script>
 

Check out the documentation for advanced usage and customization.

YummyAcl

A component that works with Auth to add group-based access controls to your admin portal.

yummy acl screenshot

// Basic Usage
$this->loadComponent('Yummy.YummyAcl',[
    'group' => $this->Auth->user('group'),
]);

// Define ACLs (you can also define ACLs in a single config file)
$this->YummyAcl->actions([
    'login' => '*', // allow all 
    'view' => ['Admin','Manager'], // allow Admin + Manager
    'edit' => ['Admin'], // allow Admin
]);

Check out the documentation for advanced usage and customization.

YummyBake

A series of bootstrap admin themes for your admin portal (demo)

bin/cake bake template <ControllerName> -t Yummy

Installation

You can install this plugin into your CakePHP application using composer.

The recommended way to install composer packages is:

composer require cnizzardini/cakephp-yummy

Load the plugin in: config/bootstrap.php

Plugin::load('Yummy', ['bootstrap' => false, 'routes' => true]);

In newer versions of cake load the plugin via your src/Application.php file.

Documentation

Checkout the Wiki.

You can also view the source code for demo project on github:

https://github.com/cnizzardini/cakephp-yummy-demo

CakePHP 3 Support

Version Supported Unit Tests Notes
3.8 Yes Passing -
3.7 Yes Passing Tested
3.6 Yes Passing -

Note, unit tests fail on 3.5 and lower. Unit tests were ran against CakePHP 4.0.0-beta3 and failed.

Unit Testing

vendor/bin/phpunit 

Developers

Fork and send a pull request. You can include Yummy in your Cake project as a local source to make developing easier use these steps:

  • Remove cnizzardini\cakephp-yummy from your composer.json

  • Add a paths repository to your composer.json

"repositories": [
    {
        "type": "path",
        "url": "/absolute/local-path-to/cakephp-yummy",
        "options": {
          "symlink": true
        }
    }
]
  • Run composer require cnizzardini/cakephp-yummy @dev

Undo these steps when you're done. Read the full composer documentation on loading from path here: https://getcomposer.org/doc/05-repositories.md#path