PHP code example of xinix-technology / bono-metronic-template
1. Go to this page and download the library: Download xinix-technology/bono-metronic-template 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/ */
xinix-technology / bono-metronic-template example snippets
//some codes
'bono.providers' => array(
'Norm\\Provider\\NormProvider' => array(
'datasources' => array(
'mysql' => array(
'driver' => '\\Norm\\Connection\\PDOConnection',
'dialect' => '\\Norm\\Dialect\\MySQLDialect',
'prefix' => 'mysql',
'dbname' => 'nama_database',
'host' => 'localhost',
'username' => 'root',
'password' => 'password'
)
),
// some codes
return array(
'schema' => array(
// input schema here
),
);
// some codes
'Bono\\Middleware\\ControllerMiddleware' => array(
'default' => 'App\\Controller\\AppController',
'mapping' => array(
'/test' => null,
'/user' => null,
'/previleges' => null,
'/role' => '\\App\Controller\\RoleController',
'/sysparam' => null,
'/collection' => null,
),
),
//some codes
use App\Schema\Thumbnail;
return array(
'schema' => array (
'photo' => Thumbnail::create('photo','Gambar')->set('list-column', true)->set('bucket','storage'),
)
)
use App\Schema\NormString;
return array(
'schema' => array (
'name' => NormString::create('name')->set('list-column', true),
)
)
use App\Schema\InputMask;
return array(
'schema' => array (
'ktp' => InputMask::create('ktp')->set('list-column', true)->set_mask('99-9999-99_99.999'),
)
)
use App\Schema\FileUpload;
return array(
'schema' => array (
'file' => FileUpload::create('file')->set('list-column', true)->set('bucket','storage1'),
)
)
use App\Schema\Reference;
return array(
'schema' => array (
'dropdown' => Reference::create('dropdown')->to(array('a' => 'testing1', 'b' => 'test2')),
)
)
use App\Schema\SelectTwoReference;
return array(
'schema' => array (
'select' => SelectTwoReference::create('select')->to(array('a' => 'testing1', 'b' => 'test2')),
)
)
use App\Schema\MultiReference;
return array(
'schema' => array (
'role' => MultiReference::create('role')->to('Role'),
)
)
use App\Schema\SearchReference;
return array(
'schema' => array (
'user' => SearchReference::create('user')->to('User','first_name')->set('field',array('email','first_name')),
)
)
use App\Schema\DatePicker;
return array(
'schema' => array (
'testdate' => DatePicker::create('testdate')->setformatdate('dd-mm-yyyy'),
)
)
use App\Schema\DatePicker;
return array(
'schema' => array (
'sysparam' => SysparamReference::create('sysparam')->setGroups('gender'),
)
)
// some codes
'Bono\\Middleware\\ControllerMiddleware' => array(
'default' => 'App\\Controller\\AppController',
'mapping' => array(
'/test' => null,
'/user' => null,
'/previleges' => null,
'/role' => '\\App\Controller\\RoleController',
'/sysparam' => null,
'/category' => '\\App\Controller\\CategoryController',
),
),
//some codes
$items = \Norm::factory('table_name')->find();
$items = \Norm::factory('table_name')->find(id);
$items = \Norm::factory('table_name')->find(array('field' => criteria));
$employees = \Norm::factory('employee')->find(array('company_id' => 3));
$items = \Norm::factory('table_name')->findOne(array('field' => criteria));
$employees = \Norm::factory('employee')->findOne(array('company_id' => 3));
namespace App\Provider;
class AppProvider extends \Bono\Provider\Provider
{
public function initialize()
{
$app = $this->app;
}
}
// inside initialize function
$app->get('/product_api', function () use ($app) {
$data = Norm::factory('product')->find();
$app->response->data('product', $data);
});
// some code
'Bono\\Provider\\LanguageProvider' => null,
'App\\Provider\\AppProvider'=> null,
'App\\Provider\\ProductProvider'=> null, // register new provider
namespace App\Provider;
use Norm\Norm;
class ProductProvider extends AppProvider {
public function initialize()
{
$app = $this->app;
$app->get('/product_api', function () use ($app) {
$data = Norm::factory('product')->find(); // mengambil seluruh data product
$app->response->data('product', $data); // kembalikan response JSON dengan nama product dan kirimkan $data
});
}
}
return array(
'observers' => array(
'App\\Observer\\ProductObserver' => null, // declare observer here
),
'schema' => array(
// some schema
),
);
namespace App\Middleware;
use \Norm\Norm;
class AuditTrailMiddleware extends \Slim\Middleware {
public function call(){
$request = $this->app->request;
$user = array();
if(!empty($_SESSION['user'])){
$user = $_SESSION['user'];
}
$data = $this->app->request->getBody();
$this->next->call();
if (!empty($_REQUEST['password'])) {
unset($data['password']);
}
$trail = array(
'user' => !empty($user['$id']) ? $user['$id']:'',
'uri' => $request->getPath(),
'method' => $request->getMethod(),
'data' => (!empty($data)) ? json_encode($data) : '',
'ip_address' => $request->getIp(),
'user_agent' => $request->getUserAgent(),
);
$model = Norm::factory('AuditTrail')->newInstance();
$model->set($trail);
$model->save();
}
class MetronicNotificationMiddleware extends NotificationMiddleware
{
public function show($options = null)
{
unset($_SESSION['notification']);
if (is_null($options)) {
return $this->show(array('level' => 'error')) . "\n" . $this->show(array('level' => 'info'));
}
$messages = $this->query($options);
if (!empty($messages)) {
$result = '<div class="alert '.$options['level'].'" role="alert">';
foreach ($messages as $message) {
$result .= '<span>'.$message['message'].'</span> ';
}
$result .= '</div>';
return $result;
}
}
}
namespace App\Middleware;
class TestMiddleware extends \Slim\Middleware {
public function call() {
// code here
}
}
'App\\Middleware\\MetronicNotificationMiddleware' => null,
'App\\Middleware\\AuditTrailMiddleware' => null,
'App\\Middleware\\TestMiddleware' => null, // register new middleware
'username' => NormString::create('username')->filter('trim|
namespace App\Provider;
use \Norm\Filter\Filter;
use Norm\Filter\FilterException;
class AppProvider extends \Bono\Provider\Provider
{
public function initialize()
{
$app = $this->app;
Filter::register('custom_filter', function ($key, $value, $model) {
$search = array('name' => $model['name'], 'slug' => $model['slug']);
$check = \Norm::factory($model->getClass())->findOne($search);
if ($check) {
throw new FilterException("data'" . $key . "'sudah ada");
}
return $value;
});
}
'username' => NormString::create('username')->filter('trim|
config.php
localhost/bono-metronic/www
Product.php
config.php
www/storage
www/storage1
localhost/bono-metronic/www/index.php/sysparam