hypersistence / hypersistence-laravel
PHP Object Oriented persistence framework to Laravel.
This package's canonical repository appears to be gone and the package has been frozen as a result.
v2.8.8
2021-08-02 16:50 UTC
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2022-03-30 18:20:44 UTC
README
PHP Object Orented persistence framework.
To use in Laravel 5.4 add the following line in config/app.php -> providers:
Hypersistence\HypersistenceServiceProvider::class,
Hypersistence\Auth\HypersistenceAuthServiceProvider::class,
To create models from database use the command:
php artisan hypersistence:make-models <directory?> {--override}
To create the basic user model for authnetication use this command:
php artisan hypersistence:make-auth
Use doc comment tags for mapping classes with database.
Example:
/** * @table(person) */ class Person extends Hypersistence{ /** * @primaryKey * @column(person_id) */ private $id; /** * Use empty column when the column has the same name that var. * @column() */ private $name; /** * When you have a Many to One relationship use tags as below. * You can use 'lazy' or 'eager'. * @manyToOne(lazy) * @column(city_id) * @itemClass(City) */ private $city; /** * When you have a One to Many relationship use tags as below. * You can use 'lazy' or 'eager'. * @oneToMany(lazy) * @joinColumn(person_id) * @itemClass(Book) */ private $books; /** * When you have a Many to Many relationship use tags as below. * You can use 'lazy' or 'eager'. * @manyToMany(lazy) * @joinColumn(person_id) * @inverseJoinColumn(course_id) * @itemClass(Course) * @joinTable(person_has_course) */ private $courses; public function getId(){ return $this->id; } public function setId($id){ $this->id = $id; } public function getName(){ return $this->name; } public function setName($name){ $this->name = $name; } public function getCity(){ return $this->city; } public function setCity($city){ $this->city = $city; } public function getBooks(){ return $this->books; } public function getCourses(){ return $this->courses; } }
Load Example:
$p = new Person(); $p->setId(1); $p->load(); echo $p->getName();
Save Example:
$p = new Person(); $p->setName('Mateus Fornari'); $city = new City(1); $city->load(); $p->setCity($city); $p->save();
Search Example:
$p = new Person(); $p->setName('Mateus'); $search = $p->search(); $search->orderBy('name', 'asc'); $search->orderBy('city.name', 'desc'); $list = $search->execute();