1. Go to this page and download the library: Download jijihohococo/ichi-orm 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/ */
#!/usr/bin/env php
\Command\ModelCommand;
$modelCommand = new ModelCommand;
$modelCommand->run(__DIR__,$argv);
php ichi make:model Blog
$modelCommand = new ModelCommand;
$modelCommand->setPath('new_app/Models');
$modelCommand->run(__DIR__,$argv);
namespace App\Models;
use JiJiHoHoCoCo\IchiORM\Database\Model;
class Blog extends Model{
protected function getTable(){
return "order_item_details";
}
}
namespace App\Models;
use JiJiHoHoCoCo\IchiORM\Database\Model;
class Blog extends Model{
protected function getID(){
return "blog_id";
}
}
namespace App\Models;
use JiJiHoHoCoCo\IchiORM\Database\Model;
class Blog extends Model{
publilc $id,$author_id,$content,$created_at,$updated_at,$deleted_at;
}
namespace App\Models;
use JiJiHoHoCoCo\IchiORM\Database\Model;
class Blog extends Model{
publilc $id,$author_id,$content,$created_at,$updated_at,$deleted_at;
public function author(){
return $this->refersTo('App\Models\Author','author_id');
}
}
namespace App\Models;
use JiJiHoHoCoCo\IchiORM\Database\Model;
class Blog extends Model{
publilc $id,$author_id,$content,$created_at,$updated_at,$deleted_at;
public function author(){
return $this->refersTo('App\Models\Author','author_id','authorID');
}
}
namespace App\Models;
use JiJiHoHoCoCo\IchiORM\Database\Model;
class Author extends Model{
publilc $id,$name,$created_at,$updated_at,$deleted_at;
public function blogs(){
return $this->refersMany('App\Models\Blog','author_id')->get();
}
}
namespace App\Models;
use JiJiHoHoCoCo\IchiORM\Database\Model;
class Author extends Model{
publilc $authorID,$name,$created_at,$updated_at,$deleted_at;
public function blogs(){
return $this->refersMany('App\Models\Blog','author_id','authorID')->get();
}
}
[
'current_page' => 'current page number',
'data' => 'paginated data',
'first_page_url' => 'first page url',
'from' => 'The number of paginated data which starts to show in current page',
'last_page' => 'The last page number',
'last_page_url' => 'The last page url',
'next_page_url' => 'The next page url',
'path' => 'the current page url',
'per_page' => 'The number of how many data will be shown per page',
'prev_page_url' => 'The previous page url',
'to' => 'The number of paginated data which is last data to show in current page',
'total' => 'The total number of paginated data in current page'
]
use JiJiHoHoCoCo\IchiORM\Database\Connector;
$pdo=Connector::getInstance()->executeConnect('new_mysql_connection');
namespace App\Models;
use JiJiHoHoCoCo\IchiORM\Database\Model;
use JiJiHoHoCoCo\IchiORM\Database\Connector;
class Author extends Model{
protected function connectDatabase(){
return Connector::getInstance()->executeConnect('new_mysql_connection');
}
}
namespace App\Resources;
use JiJiHoHoCoCo\IchiORM\Resource\ResourceCollection;
class BlogResourceCollection extends ResourceCollection{
public function getSelectedResource($data){
return [
'id' => $data->id,
'author_id' => $data->author_id,
'content' => $data->content,
'created_at' => $data->created_at,
'updated_at' => $data->updated_at
];
}
}
php ichi make:resource BlogResourceCollection
$modelCommand = new ModelCommand;
$modelCommand->setResourcePath('new_app/Resources');
$modelCommand->run(__DIR__,$argv);
return jsonResponse([
'blogs' => (new BlogResourceCollection)->collection( Blog::get() )
]);
return jsonResponse([
'blog' => (new BlogResourceCollection)->singleCollection( Blog::find(1) )
]);
namespace App\Resources;
use JiJiHoHoCoCo\IchiORM\Resource\ResourceCollection;
class BlogResourceCollection extends ResourceCollection{
public function getSelectedResource($data){
return [
'id' => $data->id,
'author' => $data->author(),
'content' => $data->content,
'created_at' => $data->created_at,
'updated_at' => $data->updated_at
];
}
}
namespace App\Resources;
use JiJiHoHoCoCo\IchiORM\Resource\ResourceCollection;
use App\Resources\AuthorResourceCollection;
class BlogResourceCollection extends ResourceCollection{
public function getSelectedResource($data){
return [
'id' => $data->id,
'author_id' => $data->author_id,
'author' => (new AuthorResourceCollection)->singleCollection( $data->author() ) ,
'content' => $data->content,
'created_at' => $data->created_at,
'updated_at' => $data->updated_at
];
}
}
namespace App\Resources\AuthorResourceCollection;
use JiJiHoHoCoCo\IchiORM\Resource\ResourceCollection;
class AuthorResourceCollection extends ResourceCollection{
public function getSelectedResource($data){
return [
'id' => $data->id,
'name' => $data->name
];
}
}
use JiJiHoHoCoCo\IchiORM\Cache\CacheModel;
use Redis;
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
CacheModel::setCacheObject($redis);
use JiJiHoHoCoCo\IchiORM\Cache\CacheModel;
use Memcached;
$memcached = new Memcached();
$memcached->addServer('127.0.0.1',11211);
CacheModel::setCacheObject($memcached);
use JiJiHoHoCoCo\IchiORM\Cache\CacheModel;
use App\Models\Blog;
$blogs = CacheModel::remember('blogs',function(){
return Blog::whereIn('author_id',[1,2,3])->get();
},100);
use JiJiHoHoCoCo\IchiORM\Cache\CacheModel;
CacheModel::remove('blogs');
use JiJiHoHoCoCo\IchiORM\Cache\CacheModel;
$blogs = CacheModel::save('blogs',function(){
return Blog::whereIn('author_id',[1,2,3])->get();
},100);
use JiJiHoHoCoCo\IchiORM\Cache\CacheModel;
$cachedBlogs = CacheModel::get('blogs');
use JiJiHoHoCoCo\IchiORM\Cache\CacheModel;
$redisObject = CacheModel::getRedis();
use JiJiHoHoCoCo\IchiORM\Cache\CacheModel;
$memcachedObject = CacheModel::getMemcached();
namespace App\Observers;
use JiJiHoHoCoCo\IchiORM\Observer\ModelObserver;
use App\Models\Blog;
class BlogObserver implements ModelObserver{
public function create($blog){
}
public function update($blog){
}
public function delete($blog){
}
public function restore($blog){
}
public function forceDelete($blog){
}
}
php ichi make:observer BlogObserver
$modelCommand = new ModelCommand;
$modelCommand->setObserverPath('new_app/Observers');
$modelCommand->run(__DIR__,$argv);
use App\Models\Blog;
use App\Observers\BlogObserver;
Blog::observe(new BlogObserver);
use App\Models\Blog;
use App\Observers\{BlogObserver,BlogDataObserver};
Blog::observe(new BlogObserver);
Blog::observe(new BlogDataObserver);
namespace App\Models;
use JiJiHoHoCoCo\IchiORM\Database\Model;
class Blog extends Model{
publilc $id,$author_id,$content,$created_at,$updated_at,$deleted_at;
public function customFunction(){
/*----- your business logic -----*/
//--- Example to pass one parameter into observer function ---//
$currentObject=$this;
self::$observerSubject->use(get_class($this),'customFunction',$currentObject);
}
}
namespace App\Observers;
use JiJiHoHoCoCo\IchiORM\Observer\ModelObserver;
use App\Models\Blog;
class BlogObserver implements ModelObserver{
public function customFunction($blog){
}
}
namespace App\Models;
use JiJiHoHoCoCo\IchiORM\Database\Model;
class Blog extends Model{
publilc $id,$author_id,$content,$created_at,$updated_at,$deleted_at;
public function author(){
return $this->refersTo('App\Models\Author','author_id');
}
public function customFunction(){
/*----- your business logic -----*/
//--- Example to pass multiple parameter into observer function ---//
$currentObject=$this;
$author=$this->author();
self::$observerSubject->use(get_class($this),'customFunction',[$currentObject,$author]);
}
}
namespace App\Observers;
use JiJiHoHoCoCo\IchiORM\Observer\ModelObserver;
use App\Models\{Blog,Author};
class BlogObserver implements ModelObserver{
public function customFunction($blog,$author){
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.