pagon

by hfcorriez

hfcorriez / pagon

Modern PHP Framework

200 Stars 28 Forks Last release: almost 6 years ago (0.8.3) MIT License 872 Commits 21 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Pagon

Pagon is Modern PHP framework with elegant syntax. It also allow you to build RESTful web applications quickly and easily.

Other languages: 中文文档

Quick Started

Installation

Pagon use Composer to manage its dependencies. First you need to have

Composer
installed globally.

You can also download a copy of the

composer.phar
in your repository's root, run a command such as the following:
curl -s https://getcomposer.org/installer | php

via Download/Git

Download source files from Github or clone from Github

$ git clone [email protected]:hfcorriez/pagon.git myapp
$ composer install # php composer.phar install

Via Composer Create-Project

$ composer create-project pagon/pagon myapp # php composer.phar ...

Debugger server

You can use Pagon built-in debugger server for rapid development under development environment. please use a

Nginx
or
Apache
server for production environment.
$ ./bin/pagon serve [-p|--port ]
Pagon serve at http://127.0.0.1:5000

Configuration

All of the configuration files for the Pagon are stored in the

app/config
directory.

Optional attributes

mode        # Runing mode
debug       # Debug mode
views       # Template directory
buffer      # Open a buffer or not
timezone    # timezone (default: UTC)
charset     # charset (default: UTF-8)
autoload    # Auto load directory
error       # Handle error or not
routes      # Routes
names       # Router name, auto created
alias       # Class aliases, for short class name
namespaces  # Namespaces
engines     # Template engines
errors      # Default errors
stacks      # stacks
mounts      # mounts
bundles     # bundles
locals      # locals
url_rewrite # Url rewrite or not

Routing

To get started, let's create our first route. In Pagon, the simplest route is a route to a Closure.

// Init app
$app = Pagon::create();

// Routing with a callback function $app->get('/', function($req, $res) { $res->render('index.php'); });

// Routing with a class method $app->get('/users/:id', 'Web\User');

// Specify named parameters in your routes $app->post('/users/:id(/:op)', 'Web\UserOperator');

// Run app $app->run();

Database

Pagon ships with a superb ORM: Paris. More detailed documentation and examples, please check out Paris Doc.

Simple Example

$users = \Model\User::dispense()->where('status', 1)->find_many();

Migration

Init Database schema

./bin/cli db:init

Will execute file

app/migrations/schema.sql

Migrate, Status

$ ./bin/cli db:generate AddUserLoginTime
+f ./migrations/20141208030747_AddUserLoginTime.php

$ ./bin/cli db:status

Status Migration ID Migration Name

down 20141208030747 AddUserLoginTime

$ ./bin/cli db:migrate == 20141208030747 AddUserLoginTime migrating == 20141208030747 AddUserLoginTime migrated 0.0084s

Except

init
command, all the other commands map to phpmig to execute。

Cli

Manage PHP shell for *unix console

./bin/cli
$app->command('db\:init', '\Command\DB\Init');
$app->command('queue\:start', '\Command\Queue\Start');

Execution

$ ./bin/cli db:init
$ ./bin/cli queue:start

Showcase

iNews: https://github.com/Trimidea/inews

License

Copyright (c) 2014-2015 hfcorriez. MIT Licensed, see LICENSE for details.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.