PHPackages                             josegonzalez/app - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. josegonzalez/app

ActiveProject[Framework](/categories/framework)

josegonzalez/app
================

CakePHP skeleton app

1.11.3(6y ago)74577MITPHPPHP &gt;=7.0CI failing

Since Dec 22Pushed 5y ago5 watchersCompare

[ Source](https://github.com/josegonzalez/app)[ Packagist](https://packagist.org/packages/josegonzalez/app)[ Docs](https://github.com/josegonzalez/app)[ RSS](/packages/josegonzalez-app/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (10)Dependencies (21)Versions (44)Used By (0)

A CakePHP Application Skeleton
==============================

[](#a-cakephp-application-skeleton)

[![Build Status](https://camo.githubusercontent.com/1167021247341b93ad63b2ceb68ce7556b3650bed8ba418439a336acb190f872/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f6a6f7365676f6e7a616c657a2f6170702f6d61737465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/josegonzalez/app)[![License](https://camo.githubusercontent.com/693e6362c4bead94a2b4625d333682bebf9e5fb6a9415bbbc84a41457264ff50/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6a6f7365676f6e7a616c657a2f6170702e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/josegonzalez/app)[![Version](https://camo.githubusercontent.com/a358646b389de3f64d281a5938820685171f61da5c630d6814253cb5ea19b36c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a6f7365676f6e7a616c657a2f6170702e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/josegonzalez/app)[![Total Downloads](https://camo.githubusercontent.com/527d45b8fbf23c426685f30d1b2d38e0f7f97814e81543326a54958682c6ffd6/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6a6f7365676f6e7a616c657a2f6170702e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/josegonzalez/app)

A fork of the [official skeleton](https://github.com/cakephp/app) for creating applications with [CakePHP](http://cakephp.org) 3.x. It should be more or less "batteries included".

Installation
------------

[](#installation)

1. Download [Composer](https://getcomposer.org/doc/00-intro.md) or update `composer self-update`.
2. Run `php composer.phar create-project --prefer-dist josegonzalez/app [app_name]`.

If Composer is installed globally, run

```
composer create-project --prefer-dist josegonzalez/app [app_name]
```

In case you want to use a custom app dir name (e.g. `/myapp/`):

```
composer create-project --prefer-dist josegonzalez/app myapp
```

You can now either use your machine's webserver to view the default home page, or start up the built-in webserver with:

```
bin/cake server -p 8765
```

Then visit `http://localhost:8765` to see the welcome page.

Update
------

[](#update)

Since this skeleton is a starting point for your application and various files would have been modified as per your needs, there isn't a way to provide automated upgrades, so you have to do any updates manually.

Features
--------

[](#features)

- [New Installed Packages and Plugins](#installed-packages-and-plugins)
- [Environment Variable Configuration](#configuration)
- [Asset Compression](#asset-compression)
- [Crud Defaults](#crud-defaults)
    - [Crud View Defaults](#crud-view-defaults)
- [Customizing Bake](#customizing-bake)
- [Error Handling](#error-handling)
- [Heroku Support](#heroku-support)
- [Queuing](#queuing)

### Installed Packages and Plugins

[](#installed-packages-and-plugins)

The following is a list of CakePHP plugins that are installed and pre-configured:

- [friendsofcake/bootstrap-ui](https://github.com/FriendsOfCake/bootstrap-ui)
- [friendsofcake/crud-users](https://github.com/FriendsOfCake/crud-users)
- [friendsofcake/crud-view](https://github.com/FriendsOfCake/crud-view)
- [friendsofcake/crud](https://github.com/FriendsOfCake/crud)
- [friendsofcake/search](https://github.com/FriendsOfCake/search)
- [josegonzalez/cakephp-users](https://github.com/josegonzalez/cakephp-users)
- [josegonzalez/cakephp-upload](https://github.com/josegonzalez/cakephp-upload)
- [josegonzalez/cakephp-queuesadilla](https://github.com/josegonzalez/cakephp-queuesadilla)
- [markstory/asset\_compress](https://github.com/markstory/asset_compress)

The following is a list of PHP packages that are installed and pre-configured:

- [cakephp/cakephp-codesniffer](https://github.com/cakephp/cakephp-codesniffer)
- [josegonzalez/php-dotenv](https://github.com/josegonzalez/php-dotenv)
- [josegonzalez/php-error-handers](https://github.com/josegonzalez/php-error-handlers)

### Configuration

[](#configuration)

By default, this skeleton will use [josegonzalez/php-dotenv](https://github.com/josegonzalez/php-dotenv) to load configuration from the following files:

- `config/app.php`
- `config/.env`
    - if this file does not exist, `config/.env.default`

For "global" configuration that does not change between environments, you should modify `config/app.php`. As this file is ignored by default, you should *also* endeavor to add sane defaults to `app.default.php`.

For configuration that varies between environments, you should modify the `config/.env` file. This file is a bash-compatible file that contains `export KEY_1=VALUE` statements. Underscores in keys are used to expand the key into a nested array, similar to how `\Cake\Utility\Hash::expand()` works.

As a convenience, certain variables are remapped automatically by the `config/env.php` file. You may add other paths at your leisure to this file.

### Asset Compression

[](#asset-compression)

The [markstory/asset\_compress](https://github.com/markstory/asset_compress) plugin is installed and enabled by default. It is used by the CrudView plugin, but does not currently have an integration with the default layout.

### Crud Defaults

[](#crud-defaults)

By default, the [crud](https://github.com/friendsofcake/crud) plugin has been enabled with all known customizations. Simply creating a controller will enable all CRUD-actions in the default RESTful api mode.

Note that we *also* default pagination sorting to the table's `primaryKey` (if there is a single `primaryKey` field).

#### Crud Users Defaults

[](#crud-users-defaults)

The `CrudUsers` plugin has been preconfigured for use with the `Users` plugin. A migration is pre-created in the skeleton app, and can be run to initialize the plugin. Associated plugin migrations will also be run via:

```
composer run-script compile
```

See the [Users plugin documentation](https://github.com/josegonzalez/cakephp-users) for more information.

#### Crud View Defaults

[](#crud-view-defaults)

[Crud View](https://github.com/friendsofcake/crud-view) is enabled for all admin-prefixed actions in the `Application::beforeFilter`. You may *also* turn it on automatically for a controller by setting the controller's `$isAdmin` property to `true`.

Note that the `scaffold.brand` is set to the constant `APP_NAME`, which can be modified in your `config/.env.default` or `config/.env` files.

### Customizing Bake

[](#customizing-bake)

There now exists a `config/bake_cli.php`. This file should contain all bake-related event handlers. It is used to speed up the re-bake process such that we don't need to go in and re-add customizations.

As an example, the following event handler will add the `Josegonzalez/Upload.Upload` plugin to the `Users.photo` field:

```
EventManager::instance()->on('Bake.beforeRender.Model.table', function (Event $event) {
    $view = $event->subject();
    $name = Hash::get($view->viewVars, 'name', null);
    if ($name == 'Users') {
        $behaviors = Hash::normalize(Hash::get($view->viewVars, 'behaviors', []));
        $behaviors['Josegonzalez/Upload.Upload'] = ['photo' => []];
        $view->set('behaviors', $behaviors);
    }
});
```

Please refer to the [bake documentation](http://book.cakephp.org/3.0/en/bake/development.html) for more details.

### Error Handling

[](#error-handling)

Custom error handlers that ship errors to external error tracking services are set via the [josegonzalez/php-error-handers](https://github.com/josegonzalez/php-error-handlers) package. To configure one, you can add the following key configuration to your `config/app.php`:

```
[
    'Error' => [
        'config' => [
            'handlers' => [
                // configuring the BugsnagHandler via an env var
                'BugsnagHandler' => [
                    'apiKey' => env('BUGSNAG_APIKEY', null)
                ],
            ],
        ],
    ],
];
```

Then simply set the proper environment variable in your `config/.env` or in your platform's configuration management tool.

### Heroku Support

[](#heroku-support)

Heroku and other PaaS-software are supported by default. If deploying to Heroku, simply run the following and - assuming you have the proper remote configuration - everything should work as normal:

```
git push heroku master
```

Migrations for the core application will run by default. If you wish to run migrations for plugins, you will need to modify the key `scripts.compile` in your `composer.json`.

### Queuing

[](#queuing)

Queuing support is provided through the [Queuesadilla](https://github.com/josegonzalez/php-queuesadilla) php package, with a [CakePHP plugin](https://github.com/josegonzalez/cakephp-queuesadilla) providing integration.

You can start a queue off the `jobs` mysql table:

```
# ensure everything is migrated and the jobs table exists
bin/cake migrations migrate

# default queue
bin/cake queuesadilla

# also the default queue
bin/cake queuesadilla --queue default

# some other queue
bin/cake queuesadilla --queue some-other-default

# use a different engine
bin/cake queuesadilla --engine redis
```

You can customize the engine configuration under the `Queuesadilla.engine` array in `config/app.php`. At the moment, it defaults to a config compatible with your application's mysql database config.

Need to queue something up?

```
// assuming mysql engine
use josegonzalez\Queuesadilla\Engine\MysqlEngine;
use josegonzalez\Queuesadilla\Queue;

// get the engine config:
$config = Configure::read('Queuesadilla.engine');

// instantiate the things
$engine = new MysqlEngine($config);
$queue = new Queue($engine);

// a function in the global scope
function some_job($job)
{
    var_dump($job->data());
}
$queue->push('some_job', [
    'id' => 7,
    'message' => 'hi'
]);
```

See [here](https://github.com/josegonzalez/php-queuesadilla/blob/master/docs/defining-jobs.md) for more information on defining jobs.

### Layout

[](#layout)

The app skeleton uses a subset of [Foundation](http://foundation.zurb.com/) (v5) CSS framework by default. You can, however, replace it with any other library or custom styles.

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity21

Limited adoption so far

Community25

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~34 days

Total

43

Last Release

2403d ago

Major Versions

0.1.11 → 1.1.122016-01-11

PHP version history (4 changes)0.0.1PHP &gt;=5.4.16

1.2.0PHP &gt;=5.5.9

1.5.0PHP &gt;=5.6

1.7.0PHP &gt;=7.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/f38b500117ee9754ea7a4c56b800c8151ca0605b1715a3b2ff054aae504f7393?d=identicon)[josegonzalez](/maintainers/josegonzalez)

---

Top Contributors

[![markstory](https://avatars.githubusercontent.com/u/24086?v=4)](https://github.com/markstory "markstory (1603 commits)")[![lorenzo](https://avatars.githubusercontent.com/u/37621?v=4)](https://github.com/lorenzo "lorenzo (605 commits)")[![ADmad](https://avatars.githubusercontent.com/u/142658?v=4)](https://github.com/ADmad "ADmad (313 commits)")[![josegonzalez](https://avatars.githubusercontent.com/u/65675?v=4)](https://github.com/josegonzalez "josegonzalez (161 commits)")[![phpnut](https://avatars.githubusercontent.com/u/148097?v=4)](https://github.com/phpnut "phpnut (140 commits)")[![dereuromark](https://avatars.githubusercontent.com/u/39854?v=4)](https://github.com/dereuromark "dereuromark (108 commits)")[![inoas](https://avatars.githubusercontent.com/u/20972207?v=4)](https://github.com/inoas "inoas (75 commits)")[![ceeram](https://avatars.githubusercontent.com/u/111448?v=4)](https://github.com/ceeram "ceeram (72 commits)")[![jrbasso](https://avatars.githubusercontent.com/u/26548?v=4)](https://github.com/jrbasso "jrbasso (70 commits)")[![AD7six](https://avatars.githubusercontent.com/u/33387?v=4)](https://github.com/AD7six "AD7six (69 commits)")[![predominant](https://avatars.githubusercontent.com/u/24568?v=4)](https://github.com/predominant "predominant (68 commits)")[![renan](https://avatars.githubusercontent.com/u/28046?v=4)](https://github.com/renan "renan (56 commits)")[![bcrowe](https://avatars.githubusercontent.com/u/752603?v=4)](https://github.com/bcrowe "bcrowe (55 commits)")[![antograssiot](https://avatars.githubusercontent.com/u/4977112?v=4)](https://github.com/antograssiot "antograssiot (37 commits)")[![nateabele](https://avatars.githubusercontent.com/u/18288?v=4)](https://github.com/nateabele "nateabele (30 commits)")[![ionas](https://avatars.githubusercontent.com/u/106845?v=4)](https://github.com/ionas "ionas (23 commits)")[![jippi](https://avatars.githubusercontent.com/u/22841?v=4)](https://github.com/jippi "jippi (22 commits)")[![ravage84](https://avatars.githubusercontent.com/u/625761?v=4)](https://github.com/ravage84 "ravage84 (21 commits)")[![rchavik](https://avatars.githubusercontent.com/u/39490?v=4)](https://github.com/rchavik "rchavik (20 commits)")[![saeideng](https://avatars.githubusercontent.com/u/8215801?v=4)](https://github.com/saeideng "saeideng (19 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/josegonzalez-app/health.svg)

```
[![Health](https://phpackages.com/badges/josegonzalez-app/health.svg)](https://phpackages.com/packages/josegonzalez-app)
```

###  Alternatives

[bedita/manager

BEdita Manager - official admin webapp for BEdita4 API

131.1k](/packages/bedita-manager)[croogo/croogo

Croogo - Open Source CMS built for everyone

81516.1k22](/packages/croogo-croogo)[dereuromark/cakephp-translate

A CakePHP plugin for managing translations

1711.7k](/packages/dereuromark-cakephp-translate)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
