athill/php-utils

该包已被废弃,不再维护。未建议替代包。

PHP 工具类

dev-master 2021-05-28 17:50 UTC

This package is not auto-updated.

Last update: 2021-05-28 23:40:31 UTC


README

存档

这是一个简化网站构建的项目。它有一些好想法,但扩展性不足,当客户端技术超越了 jQuery 时,其相关性也大大降低。

哲学

这个项目的想法是成为“穷人的 Laravel”。我的意思是,我是 Laravel 的超级粉丝,但

  1. 在共享主机环境中使用 Laravel(或另一个 MVC(模型-视图-控制器)框架)可能令人望而却步,甚至不可能。
  2. 尽管 Laravel 让有经验的程序员的工作变得简单,但对于 PHP 初学者来说,学习曲线仍然相当陡峭。
  3. 即使你有经验并可以转向更成熟的框架,我希望这些工具可以帮助您从遗留网站过渡。

请勿使用此框架来编写下一个大项目。它适用于小型组织或爱好的小网站。

该框架旨在小巧、易理解且可扩展。在确保替换工具满足现有工具合同的情况下,很容易扩展或替换工具。

此外,该框架也深受约定优于配置的概念影响。

页面流程

页面可能看起来像这样

<?php
require('./setup.inc.php');

$local = [
	///// override defaults
];
$page = new \Athill\Utils\Page($local);
//// page content
$page->end();

这里发生了什么?

  1. setup.inc.php 用于覆盖 Setup.php 中找到的默认设置。它还启动/继续会话,设置时区等。它还创建了全局 $h 和 $site 变量。稍后会详细介绍这些。

  2. 您现在可以跳到 "//// 页面内容"。一旦加载了设置,您就有了一整套数据和可用方法。然而,如果未使用页面对象,则需要您提供任何标题或页脚等。

  3. $local 变量(仅是一个约定)用于覆盖当前页面的默认设置。您现在可以在网站和页面级别覆盖默认设置。

  4. $page 负责一切,除了页面内容。标题标签、页眉、页脚、可选侧边栏。将不同的模板传递给 $page 可以完全改变页面的外观和感觉。

  5. $site 是配置存储的地方,您可以从那里访问。

  6. $h 是一个 HTML 生成器。例如

     $h->div('content', ['class'=>'rad']);	//// div tag
     //// and 
     $h->odiv(['class'=>'rad']);				//// open div tag
     $h->tnl('content'); 					//// tab-newline
     $h->cdiv();								//// close div tag
    
     //// both generate <div class="rad">content</div>
    

    还有更多复杂但有用的方法,但您没有义务使用 $h。只需在实例化 $page 后结束 PHP 标签,在调用 $page->end() 之前恢复它,并将您的 HTML 内容放在其中即可。

     <?php
     require('./setup.inc.php');
    
     $local = [
     	///// override defaults
     ];
     $page = new \Athill\Utils\Page($local);
     ?>
     <!-- page content -->
     <?php
     $page->end();
     ?>
    

状态

目前仍在进行中。

更新 2015-03-29

已建立基本设置和模板系统。示例实现请参阅 demo.anyhill.us。代码位于 PHP-Utils-Demo。要尝试使用,您需要有一个 vagrant box 或上一更新中的要求。运行此存储库的有限演示页面只需 PHP 和 Composer

> git clone https://github.com/athill/PHP-Utils
> cd PHP-Utils
> composer update
> php -S localhost:8000
//// go to localhost:8000 in your web browser

更新 2015-02-14

我刚刚触及了表面,但正在渲染一个基本、符合规范的 HTML 页面。要运行演示

  1. 您需要 PHPComposerBower。请安装这些。
  2. 下载此存储库(解压缩,进入目录)
  3. 进入 demo 目录。demo 很可能很快将成为一个单独的存储库,但我将所有内容放在一个目录中很方便,但许多复杂性和好处都指向将其移动。
  4. $ composer update
  5. $ bower install
  6. $ php -S localhost:8000
  7. 在浏览器中转到 localhost:8000,查看源代码
  8. win

此处的实际目的是在 demo/vendor/athill/php-utils/src 目录中。其中大部分目前并未使用。目前,情况如下

  1. 您转到 localhost:8000

  2. 由于您没有请求特定的页面,您将获得 index.php,其外观如下

    p('content'); $page->end();
  3. setup.inc.php 设置了一些内容并调用 Setup.php,该文件设置了一组默认值。

  4. Page.php 使用这些默认值和可选选项来渲染内容周围的内容

  5. 内容,在这种情况下,是 <p>content</p>,来自 $h->p('content');