<?php declare(strict_types=1);
namespace MySpace\System
{
require_once(__DIR__.'/../../autoload.php');
use DuckPhp\DuckPhp;
use DuckPhp\Ext\CallableView;
use DuckPhp\SingletonEx\SingletonEx;
use MySpace\View\Views;
class App extends DuckPhp
{
public $options = [
'is_debug' => true,
'path_info_compact_enable' => true,
'ext' => [
CallableView::class => true,
],
'callable_view_class' => Views::class,
];
protected function onInit()
{
}
protected function onRun()
{
}
}
class BaseBusiness
{
use SingletonEx;
}
}
namespace MySpace\System\Helper
{
class ControllerHelper extends \DuckPhp\Helper\ControllerHelper
{
}
class BusinessHelper extends \DuckPhp\Helper\BusinessHelper
{
}
class ModelHelper extends \DuckPhp\Helper\ModelHelper
{
}
class ViewHelper extends \DuckPhp\Helper\ViewHelper
{
}
}
namespace MySpace\Controller
{
use MySpace\Business\MyBusiness; use MySpace\System\Helper\ControllerHelper as C;
class Main
{
public function __construct()
{
C::setViewHeadFoot('header', 'footer');
}
public function index()
{
$output = "Hello, now time is " . C::H(MyBusiness::G()->getTimeDesc());
$url_about = C::URL('about/me');
C::Show(get_defined_vars(), 'main_view'); }
}
class about
{
public function me()
{
$url_main = C::URL(''); C::setViewHeadFoot('header', 'footer');
C::Show(get_defined_vars()); }
}
}
namespace MySpace\Business
{
use MySpace\Model\MyModel;
use MySpace\System\BaseBusiness;
use MySpace\System\Helper\BusinessHelper as B;
class MyBusiness extends BaseBusiness
{
public function getTimeDesc()
{
return "<" . MyModel::getTimeDesc() . ">";
}
}
}
namespace MySpace\Model
{
use MySpace\Base\Helper\ModelHelper as M;
class MyModel
{
public static function getTimeDesc()
{
return date(DATE_ATOM);
}
}
}
namespace MySpace\View {
class Views
{
public static function header($data)
{
extract($data); ?>
<html>
<head>
</head>
<body>
<header style="border:1px gray solid;">I am Header</header>
<?php
}
public static function main_view($data)
{
extract($data); ?>
<h1><?=$output?></h1>
<a href="<?=$url_about?>">go to "about/me"</a>
<?php
}
public static function about_me($data)
{
extract($data); ?>
<h1> OK, go back.</h1>
<a href="<?=$url_main?>">back</a>
<?php
}
public static function footer($data)
{
?>
<footer style="border:1px gray solid;">I am footer</footer>
</body>
</html>
<?php
}
}
}
namespace
{
$options = [
];
\MySpace\System\App::RunQuickly($options);
}