Skip to content
/ app Public
forked from cakephp/app

CakePHP 3.0 application template, simple backend included

Notifications You must be signed in to change notification settings

ctlabvn/app

 
 

Repository files navigation

CakePHP Application Skeleton

Build Status License Latest Stable Version Total Downloads Latest Unstable Version

A skeleton for creating applications with CakePHP 3.x.

The framework source code can be found here: cakephp/cakephp.

Features

  1. Authenticate, Authorize
  2. Backend ready
  3. Simple shells => Power tool
  4. New CRUD bake template
  5. Send bulk email
  6. Backup database job
  7. Store Settings in database
  8. Improve pages peed: .htaccess, minify html, cdn, cache
  9. Integrated file manager, tinymce
  10. Prevent brute force attack
  11. Remember/Auto login
  12. Compress whole project to deploy.tar.gz file to ship in one click (deploy/compress.sh)
  13. Provide VERY SIMPLE script to set up nginx (script link)

Support my passion paypal

Create project

  1. Download Composer or update composer self-update.
  2. Run php composer.phar create-project --prefer-dist crabstudio/app [app_name].

If Composer is installed globally, run

composer create-project --prefer-dist crabstudio/app [app_name]

Installation

Initial new application

  1. Setup Datasource in config/app.php
  2. Run and follow the command: bin/cake install
  3. Application ready to use.

Refactory

Incase you want to wipe and reinstall application

  1. Run and follow the command: bin/cake refactory
  2. Application ready to use.

Available shell commands

	bin/cake install			: install default database
	bin/cake refactory			: wipe existing database then install factory database
	bin/cake users				: insert administrator
	bin/cake roles				: insert 3 default roles [admin, manager, member]
	bin/cake settings			: insert default settings
	bin/cake scheduler 			: run task, let's create crontab schedule [scroll down to Crontab schedule]

EmailQueue

If you want to build an url point to your Controller, build it in the controller and set to the view

// Router

$routes->connect('/verify/:token/:email', [
	'controller' => 'Coupons',
	'action' => 'verify'
], [
	'token' => '[a-z0-9]+',
	'email' => '^[A-Za-z0-9._%+-]+@([A-Za-z0-9-]+\.)+([A-Za-z0-9]{2,4}|museum)$',
	'pass' => [
		'token',
		'email'
	]
]);

// Build url

use Cake\ORM\TableRegistry;
use Cake\Routing\Router;

TableRegistry::get('EmailQueue')
	->enqueue(
		$emailAddress,
		[
			'user' => 'Anh Tuan',
			'variable_url' => Router::url([
				'controller' => 'Coupons',
				'action' => 'verify',
				$tokenString,
				$emailAddress,
				'_full' => true
			])
		], [
	        'subject' => __('Issue the coupon'),
	        'template' => 'Coupon/issue',
	        'format' => 'html',
	        'layout' => 'default'
	    ]);


// Email view (src/Template/Email/html/Coupon/issue.ctp)

<?= __('Hi {0},', $user)?>
<?= $this->Html->link(__('Verify'), $url)?>

Bake

You can use bake to generate CRUD code, then you're ready to use.

bin/cake bake all Posts --prefix admin

Template theme

Backend

Email

Add menu to the backend

Edit src/Template/Element/Admin/navbar_side.ctp to add more menu

Included Plugins

MinifyHtml

TinyAuth

CookieAuth

Search

Backend Template:

This skeleton use Flat Admin v2 as new bake template

You just do bake code, you're good to go.

Crontab schedule:

Open crontab crontab -e then add cronjob:

*/5 * * * * cd /path/to/app && bin/cake Scheduler

Compress project to ship

Go to deploy folder then double click on compress.sh

Set up nginx Web server

I recommend you to use nginx server.

Use this simple script to set up optimized nginx on ubuntu in 4 simple steps.

test

Demo

Login page

Lost password

Register

Maintenance mode

File Manager

Setting member

Change password

Task schedule

CRUD

Index

Add

Edit

View

About

CakePHP 3.0 application template, simple backend included

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 52.5%
  • PHP 25.4%
  • Java 10.3%
  • CSS 7.5%
  • ActionScript 3.3%
  • HTML 0.9%
  • Other 0.1%