lastguest / aleph
A simple PHP framework for very small sites
Requires
- php: >=5.3
This package is auto-updated.
Last update: 2024-10-16 21:02:13 UTC
README
![Gitter](https://badges.gitter.im/Join Chat.svg)
Aleph is a very simple PHP framework for very small sites.
Installation
Install via composer:
$ composer require lastguest/aleph
Or download only the framework file
Or remote include the framework file: (needs allow_url_include = true
in php.ini)
<?php include "https://raw.githubusercontent.com/lastguest/aleph/master/src/aleph.php";
Documentation
Boostrap
Include composer vendor/autoload.php
<?php include 'vendor/autoload.php';
or directly the aleph.php
file in your front controller:
<?php include 'aleph.php';
URL Routing
// The index route get('/',function(){ echo "<h1>Hello!</h1>"; }); // Listen POST on / post('/',function(){ echo "<h1>Received POST Data:</h1><pre>"; print_r($_POST); echo "</pre>"; });
If you return an array or an object it will served as JSON
get('/api/todos',function(){ return [ [ "id"=>1, "text"=>"Write documentation" ], [ "id"=>2, "text"=>"Smile" ], [ "id"=>3, "text"=>"Play more games" ], [ "id"=>4, "text"=>"Conquer the World" ], ]; });
The response will be :
[ { "id": 1, "text": "Write documentation" }, { "id": 2, "text": "Smile" }, { "id": 3, "text": "Play more games" }, { "id": 4, "text": "Conquer the World" } ]
Database
Init database DSN
database('init','mysql:host=localhost;dbname=test','root','root');
Run query and get single column
$uid = sql_value('select id from users where username = ? limit 1', array($username));
Run query and get single row
$user = sql_row('select * from users where username = ?', array($username)); echo $user->email;
Run query and iterate all returned rows
sql_each('select * from users', function($user){ echo "<li><a href="mailto:{$user->email}">{$user->name}</a></li>"; });
Passing parameters:
sql_each('select * from users where activated = ?', function($user){ echo "<li><a href="mailto:{$user->email}">{$user->name}</a></li>"; }, array('YES'));
Exec sql command
if ( sql('delete from users where id = ?',array(123)) ) echo "User deleted.";
Service
The Service function is a small DI container.
Register a factory method
class TestService { public $value; function __construct($x){ $this->value = $x; } } service('test',function($x){ return new TestService($x); });
Make service instances
$a = service('test',3); $b = service('test',5);
[{"value":3},{"value":5}]
Register a singleton service
service('test',function($x){ static $instance = null; return $instance === null ? $instance = new TestService($x) : $instance; });
Now if we call multiple times the service('test')
function we got the singleton instance every time :
$a = service('test',3); $b = service('test',5); $c = service('test');
[{"value":3},{"value":3},{"value":3}]
======================
Contributing
How to get involved:
- Star the project!
- Answer questions that come through GitHub issues
- Report a bug that you find
Core follows the GitFlow branching model. The master
branch always reflects a production-ready state while the latest development is taking place in the develop
branch.
Each time you want to work on a fix or a new feature, create a new branch based on the develop
branch: git checkout -b BRANCH_NAME develop
. Only pull requests to the develop
branch will be merged.
Pull requests are highly appreciated.
Solve a problem. Features are great, but even better is cleaning-up and fixing issues in the code that you discover.
Versioning
Core is maintained by using the Semantic Versioning Specification (SemVer).
Copyright and license
Copyright 2014 Stefano Azzolini under the MIT license.