1. Go to this page and download the library: Download marwanalsoltany/velox library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
namespace App\Model;
use MAKS\Velox\Backend\Model;
class Person extends Model
{
protected static ?string $table = 'persons';
protected static ?array $columns = ['id', 'first_name', 'last_name', 'age', ...];
protected static ?string $primaryKey = 'id';
public static function schema(): string
{
// return SQL to create the table
}
}
use App\Model\Person;
// creating/manipulating models
$person = new Person(); // set attributes later via setters or public assignment.
$person = new Person(['first_name' => $value, ...]); // set attributes in constructor
$person->get('first_name'); // get an attribute
$person->set('last_name', $value); // set an attribute
$person->getFirstName(); // case will be changed to 'snake_case' automatically.
$person->setLastName($value); // case will be changed to 'snake_case' automatically.
$person->firstName; // case will be changed to 'snake_case' automatically.
$person->lastName = $value; // case will be changed to 'snake_case' automatically.
$attributes = $person->getAttributes(); // returns all attributes.
$person->save(); // persists the model in the database.
$person->update(['first_name' => $value]); // updates the model and save changes in the database.
$person->delete(); // deletes the model from the database.
Person::create($attributes); // creates a new model instance, call save() on the instance to save it in the database.
Person::destroy($id); // destroys a model and deletes it from the database.
// fetching models
$count = Person::count(); // returns the number of models in the database.
$person = Person::first();
$person = Person::last();
$person = Person::one(['first_name' => 'John']);
$persons = Person::all(['last_name' => 'Doe'], $order, $offset, $limit);
$person = Person::find($id); // $id is the primary key of the model.
$persons = Person::find('first_name', 'John', 'last_name', 'Doe' ...); // or
$persons = Person::find(['first_name' => 'John', 'last_name' => 'Doe']);
$persons = Person::findByFirstName('John'); // fetches using an attribute, case will be changed to 'snake_case' automatically.
$persons = Person::where('first_name', '=', $value); // fetches using a where clause condition.
$persons = Person::where('last_name', 'LIKE', '%Doe', [['AND', 'age', '>', 27], ...], 'age DESC', $limit, $offset);
$persons = Person::fetch('SELECT * FROM @table WHERE `first_name` = ?', [$value]); // fetch using raw SQL query.
namespace App\Controller;
use MAKS\Velox\Backend\Controller;
use App\Model\Person;
class PersonsController extends Controller
{
public function indexAction()
{
$persons = Person::all();
return $this->view->render('persons/index', [
'title' => 'Persons',
'persons' => $persons
]);
}
// other CRUD actions ...
/**
* Persons search action.
*
* @route("/persons/search", {GET})
*/
public function searchAction()
{
// ...
}
/**
* Persons middleware.
*
* @route("/persons/*", {GET, POST})
*/
public function personsMiddleware()
{
// ...
}
}
use MAKS\Velox\Backend\Auth;
// instantiate the Auth class
$auth = new Auth(); // or Auth::instance();
// register a new user
$status = $auth->register('username', 'password');
// unregister a user
$status = $auth->unregister('username');
// log in a user
$status = $auth->login('username', 'password');
// log out a user
$auth->logout();
// authenticate a user model
Auth::authenticate($user);
// check if there is a logged in user
$status = Auth::check();
// retrieve the current authenticated user
$user = Auth::user();
// add HTTP basic auth
Auth::basic(['username' => 'password']);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.