taeluf/server

使用 taeluf/liaison 和 taeluf/phad 的易于使用的服务器

v0.2.x-dev 2022-06-30 17:05 UTC

This package is auto-updated.

Last update: 2024-09-29 06:20:25 UTC


README

Taeluf's Server | Liaison & Phad

使用我的开源库轻松设置的简易服务器。

示例设置请参阅 test/Server/

注意:2022年3月24日 !!!

user-ship 还未准备就绪,因此 Phad 的许多功能都没有价值。您可以自己设置用户钩子,但这太一般了。

依赖关系

  • php/liaison: 服务器框架
  • php/lia/phad: 一个库,可以将纯 HTML(带一些自定义标签)编译成数据库连接的视图。HTML 可以包含 PHP 以进行额外的自定义。

额外内容

注意

我为自己编写这个。我也写了测试和文档。这意味着它可能适合您使用。

然而,由于我目前专注于解决自己的需求,我可能会在没有警告的情况下弃用或造成破坏性更改。任何重大的破坏性更改可能会是一个新的分支,并增加版本号。但无法保证。

安装

composer require taeluf/server v0.2.x-dev   

或在您的 composer.json

{"require":{ "taeluf/server": "v0.2.x-dev"}}  

基本设置

  1. 创建一个 deliver.php 脚本(见下文)
  2. 创建一些文件夹结构(更好的是查看 test/Server/)以获取完整示例。
  3. 运行 vendor/bin/tlfserv 以生成错误页面、站点地图(仅从 phad 项目中)以及重新编译 phad 项目
  4. 查看 liaison & phad 的文档(见上方)以了解如何进行所有操作。祝你好运!

CLI 事务

有关更多信息,请参阅 bin/tlfserv
执行 vendor/bin/tlfserv 以运行所有命令,或单独运行它们

  • tlfserv error-page:生成错误页面
  • tlfserv generate-sitemap:仅生成 PHAD 项目的站点地图(不会生成非 PHAD 路由的站点地图。抱歉)
  • tlfserv recompile-phad:重新编译所有 PHAD 项目。

文件/文件夹结构

  • deliver.php:运行您整个服务器的脚本。
  • public:由 liason 自动路由的文件
  • phad:包含 phad 的视图
  • view:包含 liaison 的简单视图
  • file:直接下载的文件(使用更快的路由器并跳过 liaison)
  • fastroute:直接执行的脚本(使用更快的路由器并跳过 liaison)
  • cache:缓存目录
  • sitemap:站点地图文件的位置

示例 deliver.php 脚本

<?php  
  
require(dirname(__DIR__,2).'/vendor/autoload.php');  
  
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_HOST'] ?? 'localhost';  
  
$debug = true;  
$dir = __DIR__;  
set_error_handler(  
    function($errno, $errstr, $errfile, $errline) {  
        throw new \ErrorException($errstr, $errno, 0, $errfile, $errline);  
    }  
);  
  
$pdo = new \PDO('sqlite:'.$dir.'/db.sqlite');  
  
$server = new \Tlf\Server();  
$server->file_route($dir.'/file/');  
$server->php_route($dir.'/fastroute/');  
  
$server->init($debug);  
  
$server->enable_phad($dir, $pdo);  
  
$server->enable_analytics($pdo);  
  
  
  
// i think $lia is used by the cli  
$lia = $server->lia;  
$site = $server->addServer($dir);  
  
$server->deliver();  

class Tlf\Server

在 Liaison & Phad 之上提供(某种程度上)最小层的类,以使它们更容易设置。

常量

属性

  • static public $IS_TLFSERV_CLI = false; 将 TRUE 设置为阻止 deliver() 分发
  • public bool $debug = false; 如果为true,则打印错误信息并始终重新编译所有内容
    请参阅init()进行初始化。
  • public bool $enable_error_route = true; 如果您想实现自己的 /generic-error-page/ 路由,请在调用init()之前将其设置为false
  • public array $phads = []; phad对象的数组
  • public \Env $env; 环境对象
  • public \Lia $lia; Liaison对象
  • public \Phad $phad; 最近设置的Phad对象。查看 $this->phads 以获取所有phad实例的列表
  • public \Lia\Package $main; 主要服务器包

方法

  • public function __construct()
  • public function init($debug=null) 初始化 liaison。
  • public function load_env(string $file) 加载环境设置文件
  • public function set_cache_dir(string $dir)
  • public function disable_theme() 禁用通常提供完整HTML文档的主题
  • public function file_route($dir) 快速路由到$dir中的文件
  • public function php_route($dir) 快速路由到$dir中的脚本
  • public function is_request_to(string $url_prefix) 检查请求URI是否以给定的字符串开头
  • public function addServer($dir,$name=null, $url_prefix'/') 为给定目录添加标准的 Liaison 服务器包
  • public function env_pdo() 获取一个包含在您的环境设置文件中定义的mysql连接的pdo对象
    设置必须定义
    mysql.host, mysql.dbname, mysql.user, & mysql.password
  • public function phad_item(string $item, array $args = [])
  • public function enable_phad(string $dir, \PDO $pdo, $phad_class='Phad', $route_prefix'')
  • public function deliver() 运行 $lia->deliver() 并自动处理错误
  • public function debug()
  • public function enable_analytics(\PDO $pdo) 1. 将当前页面保存到分析

    1. 如果phad已启用,则启用分析路由

class Tlf\Server\Helper

常量

属性

方法

  • public function markdown_to_html(string $markdown) 如果安装了CommonMark,则将markdown转换为html