吉吉好呵呵 / ichi-template
PHP 模板
Requires
- php: >=7.0 || >=8.0
README
ICHI PHP 模板是快速且安全的纯PHP模板库
许可
本包根据MIT许可开源
目录
致谢
非常感谢我的母亲为我所做的一切。她是我最好的。
安装
composer require jijihohococo/ichi-template
设置模板基本目录路径
您可以为所有模板视图文件设置基本目录路径。
强烈建议在使用ICHI模板的功能之前设置模板基本目录路径
基本目录路径将在调用所有视图时使用
use JiJiHoHoCoCo\IchiTemplate\Template\View; // example // View::setPath(__DIR__.'/../views/');
如果您想使用另一个基本目录路径名称,那没有关系。
设置视图的基本路径后,您可以直接调用此基本路径下的文件。
例如,您的模板基本路径下有 'show_data.php'。
如果您已设置模板基本路径,可以直接在显示视图中调用此文件,无需包含目录路径。
显示视图
您可以在函数中这样显示视图
如果您没有设置模板基本路径,则必须包含完整目录路径
使用 'view' 函数只能在调用视图的php文件中应用部分和内容模板样式
无数据
public function showData(){ // return view('show_data.php'); }
有数据
public function showData(){ return view('show_data.php',[ 'data' => 'Hello World' ]); }
您也可以调用没有 '.php' 扩展名的 php 文件
public function showData(){ return view('show_data'); }
您可以在调用 "view" 函数的视图中使用调用数据
在您的_view_php_file_path
echo $data; // Hello World
如果您不想使用模板系统,只想显示视图,可以这样做
您还可以在从 'view' 函数调用的视图中使用以下函数
无数据
includeView('include_file.php');
有数据
includeView('include_file.php',[ 'data' => 'Hello World' ]);
您也可以调用没有 '.php' 扩展名的 php 文件
includeView('include_file');
'includeView' 函数将通过 'include' 函数显示文件
显示错误消息
您可以添加错误消息
setErrors([ 'name_error' => 'name is required', 'email_error' => 'email is required' ]);
您可以在视图 php 文件中使用 'errors' 数组变量获取错误消息
if(isset($errors['name_error'])){ echo $errors['name_error']. '<br>'; } if(isset($errors['email_error'])){ echo $errors['email_error'] . '<br>'; }
显示成功消息
您可以添加成功消息
setSuccess([ 'message' => 'registeration is completed' ]);
您可以在视图 php 视图中使用 'success' 数组变量获取成功消息
if(isset($success['message'])){ echo $success['message']; }
部分和内容
您可以根据以下方式应用模板系统
首先,您必须显示您的视图 php 文件
return view('show_data.php');
在您的模板主 php 文件中
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <?php y('content'); ?> <?php includeView('admin/layouts/footer.php'); ?> </body> </html>
在您的视图 php 文件中
<?php extend('main.php'); section('content'); ?> <p>Content</p> <?php endSection(); ?>
您也可以调用没有 '.php' 扩展名的 php 文件
extend('main');
在您的视图 php 文件中,您必须首先使用 'extend' 函数调用您的模板主 php 文件。您必须在 'section' 函数中添加 'content' 名称。在 'section' 函数之后,编写前端内容后,您必须使用 'endSection' 函数
在您的模板主 php 文件中,您必须使用 'y' 函数调用您想要显示的内容名称。
视图 php 文件和主布局文件都会显示
如果您想根据视图 php 文件动态更改页面标题
在您的视图 php 文件中
section('content','Content Page');
在您的模板主 php 文件中
<head> <title><?php echo title(); ?></title> </head>
在所有视图中共享数据
您可以在所有视图中共享数据(变量)
use JiJiHoHoCoCo\IchiTemplate\Template\View; View::share([ 'writer' => 'John', 'book' => 'New Book' ]);
并通过调用 'view' 函数
return view('show_data.php');
您可以在您的视图PHP文件中将共享数据用作变量
echo $writer . '<br>'; echo $book;
防止XSS攻击
您可以防止您的字符串数据输出受到XSS攻击
echo e($data);
组件
您可以使用类作为您的组件来显示视图PHP文件
在您的组件类中
namespace App\Components; use JiJiHoHoCoCo\IchiTemplate\Component\Component; class TestComponent extends Component{ public function render(){ return view('componet_view.php'); } }
您可以使用命令行创建组件类。
首先,您需要在项目文件夹下创建名为 "ichi" 的文件,并在该文件中使用以下代码
#!/usr/bin/env php <?php require __DIR__.'/vendor/autoload.php'; use JiJiHoHoCoCo\IchiTemplate\Command\TemplateCommand; $templateCommand=new TemplateCommand; $templateCommand->run(__DIR__,$argv);
然后您可以在命令行中创建组件
php ichi make:component TestComponent
默认文件文件夹是 "app/Components"。因此,在执行命令后,您创建的组件将位于此默认文件文件夹中。如果您想更改默认文件夹路径,您可以在 "ichi" 文件中进行更改。
$templateCommand=new TemplateCommand; $templateCommand->setPath('new_app/Components'); $templateCommand->run(__DIR__,$argv);
在您的视图PHP文件中,您现在可以调用您的组件
component('App\Components\TestComponent');
您可以在组件类中使用构造函数传递数据
在您的组件类中
namespace App\Components; use JiJiHoHoCoCo\IchiTemplate\Component\Component; class TestComponent extends Component{ private $name; public function __construct(string $name){ $this->name=$name; } public function render(){ return view('componet_view.php',[ 'name' => $this->name ]); } }
在您的视图 php 文件中
component('App\Components\TestComponent',[ 'name' => 'Test Data' ]);
您可以为您的组件类设置基本目录路径。
use JiJiHoHoCoCo\IchiTemplate\Component\ComponentSetting; ComponentSetting::setPath('App\Components');
因此,当您使用 'component' 函数时,只能调用组件类名
component('TestComponent',[ 'name' => 'Test Data' ]);
显示旧请求数据
您可以在PHP文件中显示提交后的旧请求数据
<input type="text" name="test" value="<?php old('test'); ?>">
如果您想在请求未设置时设置默认数据
old('test','Default Test');
此函数旨在用于创建和更新数据表单。