1. Go to this page and download the library: Download dvaknheo/duckphp 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/ */
dvaknheo / duckphp example snippets
declare(strict_types=1);
/**
* DuckPhp
* From this time, you never be alone~
*/
ld";
}
}
$options = [
'namespace_controller' => "\\", // 本例特殊,设置控制器的命名空间为根,而不是默认的 Controller
// 还有百来个选项以上可用,详细请查看参考文档
];
\DuckPhp\Core\App::RunQuickly($options);
declare(strict_types=1);
/**
* DuckPHP
* From this time, you never be alone~
*/
// 以下部分是核心工程师写。
namespace MySpace\System
{
ends DuckPhp
{
// @override 重写
public $options = [
'is_debug' => true,
// 开启调试模式
'path_info_compact_enable' => true,
// 开启单一文件模式,服务器不配置也能运行
'ext' => [
CallableView::class => true,
// 默认的 View 不支持函数调用,我们开启自带扩展 CallableView 代替系统的 View
],
'callable_view_class' => Views::class,
// 替换的 View 类。
];
// @override 重写
protected function onInit()
{
//初始化之后在这里运行。
//var_dump($this->options);//查看总共多少选项
}
}
} // end namespace
// 助手类
//------------------------------
// 以下部分由应用工程师编写, 和 DuckPhp 的类较弱。如果你有洁癖,还能再缩减。
namespace MySpace\Controller
{
use DuckPhp\Foundation\Controller\Helper;
use DuckPhp\Foundation\SimpleControllerTrait;
use MySpace\Business\MyBusiness;
class MainController
{
use SimpleControllerTrait;
public function __construct()
{
// 在构造函数设置页眉页脚。
Helper::setViewHeadFoot('header', 'footer');
}
public function action_index()
{
//获取数据
$output = "Hello, now time is " . __h(MyBusiness::_()->getTimeDesc()); // html编码
$url_about = __url('about/me'); // url 编码
Helper::Show(get_defined_vars(), 'main_view'); //显示数据
}
}
class aboutController
{
public function action_me()
{
$url_main = __url(''); //默认URL
Helper::setViewHeadFoot('header', 'footer');
Helper::Show(get_defined_vars()); // 默认视图 about/me ,可省略
}
}
} // end namespace
namespace MySpace\Business
{
use MySpace\Model\MyModel;
use DuckPhp\Foundation\Business\Helper;
use DuckPhp\Foundation\SimpleBusinessTrait; //为了 Business::_() 可变单例。
class MyBusiness
{
use SimpleBusinessTrait;
public function getTimeDesc()
{
return "<" . MyModel::getTimeDesc() . ">";
}
}
} // end namespace
namespace MySpace\Model
{
//use DuckPhp\Foundation\Model\Helper;
use DuckPhp\Foundation\SimpleModelTrait;
class MyModel
{
use SimpleModelTrait;
public static function getTimeDesc()
{
return date(DATE_ATOM);
}
}
}
// 把 PHP 代码去掉看,这是可预览的 HTML 结构
namespace MySpace\View {
class Views
{
public static function header($data)
{
extract($data);