PHP code example of minphp / bridge
1. Go to this page and download the library: Download minphp/bridge 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/ */
minphp / bridge example snippets
return [
'App\\ServiceProviders\\MinphpBridge'
];
namespace App\ServiceProviders;
use Pimple\ServiceProviderInterface;
use Pimple\Container;
use Cache;
use View;
use Loader;
use PDO;
use Configure;
class MinphpBridge implements ServiceProviderInterface
{
private $container;
/**
* {@inheritdoc}
*/
public function register(Container $container)
{
$this->container = $container;
$this->registerCache();
$this->registerConfig();
$this->registerConstants();
$this->registerLanguage();
$this->registerMvc();
$this->registerSession();
$container->set('cache', function ($c) {
return Cache::get();
});
$container->set('view', $container->factory(function ($c) {
return new View();
}));
$container->set('loader', function ($c) {
$constants = $c->get('minphp.constants');
$loader = Loader::get();
$loader->setDirectories([
$constants['ROOTWEBDIR'] . $constants['APPDIR'],
'models' => $constants['MODELDIR'],
'controllers' => $constants['CONTROLLERDIR'],
'components' => $constants['COMPONENTDIR'],
'helpers' => $constants['HELPERDIR'],
'plugins' => $constants['PLUGINDIR']
]);
return $loader;
});
$container->set('pdo', function ($c) {
Configure::load('database');
$dbInfo = Configure::get('Database.profile');
return new PDO(
$dbInfo['driver'] . ':dbname=' . $dbInfo['database']
. ';host=' . $dbInfo['host'] . (
isset($dbInfo['port'])
? ':' . $dbInfo['port']
: ''
),
$dbInfo['user'],
$dbInfo['pass']
);
});
}
private function registerCache()
{
$this->container->set('minphp.cache', function ($c) {
return [
'dir' => $c->get('minphp.constants')['CACHEDIR'],
'dir_permissions' => 0755,
'extension' => '.html',
'enabled' => true
];
});
}
private function registerConfig()
{
$this->container->set('minphp.config', function ($c) {
return [
'dir' => $c->get('minphp.constants')['CONFIGDIR']
];
});
}
private function registerConstants()
{
$this->container->set('minphp.constants', function ($c) {
$rootWebDir = realpath(dirname(dirname(dirname(__FILE__))))
. DIRECTORY_SEPARATOR;
$appDir = 'app' . DIRECTORY_SEPARATOR;
$htaccess = file_exists($rootWebDir . '.htaccess');
$script = isset($_SERVER['SCRIPT_NAME'])
? $_SERVER['SCRIPT_NAME']
: (
isset($_SERVER['PHP_SELF'])
? $_SERVER['PHP_SELF']
: null
);
$webDir = (
!$htaccess
? $script
: (
($path = dirname($script)) === '/'
|| $path == DIRECTORY_SEPARATOR ? '' : $path
)
) . '/';
if ($webDir === $rootWebDir) {
$webDir = '/';
}
return [
'APPDIR' => $appDir,
'CACHEDIR' => $rootWebDir . 'cache' . DIRECTORY_SEPARATOR,
'COMPONENTDIR' => $rootWebDir . 'components' . DIRECTORY_SEPARATOR,
'CONFIGDIR' => $rootWebDir . 'config' . DIRECTORY_SEPARATOR,
'CONTROLLERDIR' => $rootWebDir . $appDir . 'controllers' . DIRECTORY_SEPARATOR,
'DS' => DIRECTORY_SEPARATOR,
'HELPERDIR' => $rootWebDir . 'helpers' . DIRECTORY_SEPARATOR,
'HTACCESS' => $htaccess,
'LANGDIR' => $rootWebDir . 'language' . DIRECTORY_SEPARATOR,
'LIBDIR' => $rootWebDir . 'lib' . DIRECTORY_SEPARATOR,
'MINPHP_VERSION' => '1.0.0',
'MODELDIR' => $rootWebDir . $appDir . 'models' . DIRECTORY_SEPARATOR,
'PLUGINDIR' => $rootWebDir . 'plugins' . DIRECTORY_SEPARATOR,
'ROOTWEBDIR' => $rootWebDir,
'VEDNORDIR' => $rootWebDir . 'vendors' . DIRECTORY_SEPARATOR,
'VIEWDIR' => $rootWebDir . $appDir . 'views' . DIRECTORY_SEPARATOR,
'WEBDIR' => $webDir
];
});
}
private function registerLanguage()
{
$this->container->set('minphp.language', function ($c) {
return [
'default' => 'en_us',
'dir' => $c->get('minphp.constants')['LANGDIR'],
'pass_through' => false
];
});
}
private function registerMvc()
{
$this->container->set('minphp.mvc', function ($c) {
return [
'default_controller' => 'main',
'default_structure' => 'structure',
'default_view' => 'default',
'error_view' => 'errors',
'view_extension' => '.pdt',
'cli_render_views' => false,
'404_forwarding' => false
];
});
}
private function registerSession()
{
$this->container->set('minphp.session', function ($c) {
return [
'db' => [
'tbl' => 'sessions',
'tbl_id' => 'id',
'tbl_exp' => 'expire',
'tbl_val' => 'value'
],
'ttl' => 1800, // 30 mins
'cookie_ttl' => 604800, // 7 days
'session_name' => 'sid',
'session_httponly' => true
];
});
}
}
error_reporting(-1);
// include autoloader
php';
// Fetch available services
$services = tainer();
// Set services
foreach ($services as $service) {
$container->register(new $service());
}
// Run bridge
$bridge = Minphp\Bridge\Initializer::get();
$bridge->setContainer($container);
$bridge->run();
// Set the container
Configure::set('container', $container);
return $container;