![Gitter](https://badges.gitter.im/Join Chat.svg)
Aleph is a very simple PHP framework for very small sites.
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";
Include composer vendor/autoload.php
<?php
include 'vendor/autoload.php';
or directly the aleph.php
file in your front controller:
<?php
include 'aleph.php';
// 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','mysql:host=localhost;dbname=test','root','root');
$uid = sql_value('select id from users where username = ? limit 1', array($username));
$user = sql_row('select * from users where username = ?', array($username));
echo $user->email;
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'));
if ( sql('delete from users where id = ?',array(123)) ) echo "User deleted.";
The Service function is a small DI container.
class TestService {
public $value;
function __construct($x){ $this->value = $x; }
}
service('test',function($x){
return new TestService($x);
});
$a = service('test',3);
$b = service('test',5);
[{"value":3},{"value":5}]
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}]
======================
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.
Core is maintained by using the Semantic Versioning Specification (SemVer).
Copyright 2014 Stefano Azzolini under the MIT license.