轻量级、基于 PHP 的布局框架...知道吗? [关闭]

2024-04-11

我正在寻找一个轻量级的、基于 PHP 的布局框架。就像 Zend Framework 如何使用布局一样,我想创建一个布局模板并仅包含必要页面的内容。

<html>
<head>
<title><?= $pageTitle ?></title>
</head>
<body>
<?= $content ?>
</body>
</html>

有人知道有什么作用吗?我会使用 Zend Framework,但它对于我想要实现的目标来说太多了。


我投票给 PHP。 (PHPis模板引擎。)

function template($file, $vars) {
  ob_start();
  if(count($vars) > 0) { extract($vars); }
  include 'views/'.strtolower($file).'.php';
  return ob_get_clean();
}

顺便说一句,它可以让您执行以下操作。

echo template('layout', array( 'content' => template('page', $myData) ));

当 PHP 本身只需 6 行就足够了时,您是否应该费心使用另一个模板/布局引擎?

Edit:

也许我不清楚这是如何工作的。

template()使用模板名称(也用于组织工作的子目录)调用,并使用数组对象作为第二个参数。如果给定的变量不为空,例如template('index',null)是,则该数组被视为关联数组:并且每个键都成为包含该值的变量。

所以逻辑就变成了:

template('my_template', array(
  'oranges' => 'apples'
));

而“views/my_template.php”是:

<html>
<head>
  <title>Are apples == <?= $oranges ?>?</title>
</head>
<body>
  <p style="color: <?= $oranges == 'oranges' ? 'orange" : 'darkgreen' ?>">
    Are apples == oranges?
  </p>
</body>
</head>

所以,每次变量$oranges用于PHP获取从数组导出的数据,$vars['oranges'].

所以所有的输出都由ob_get_clean()并以字符串形式返回。输出这个字符串echo or print,或将其分配给一个数组以作为内容传递到布局。如果您理解这一点,那么就可以很容易地采用我所编写的内容并对其进行布局,或者甚至具有输出 JSON 的逻辑的页面。

我建议您在放弃这个答案之前先尝试一下。它有一种在你身上成长的趋势。

Edit 2:

根据要求,我将显示我的项目将使用的目录布局。请注意,其他 MVC 框架使用不同的结构。但是,我喜欢我的简单。

index.php
application/
  framework.php
  controllers/
    welcome.php
views/
  template.php
  index.php

为了安全起见,我有一个.htaccess路由每个请求的文件,除了那些js/ or css/,到index.php脚本,有效地隐藏我的目录。如果您愿意,您甚至可以通过模板制作 CSS,以使用变量等,我已经这样做了。

因此,任何拨打template('template', array())将加载文件./views/template.php自动地。如果我在名称中包含斜杠,它就会成为路径的一部分,如下所示:./views/posts/view.php.

Edit 3:

感谢您的更新。因此,您的 index.php 文件中必须有一些代码将请求的 url 路由到适当的控制器,对吗?你能展示一些吗?另外,您的视图看起来并不反映您的控制器目录。您能多解释一下 url 如何映射到控制器和/或视图吗? Framework.php 中有什么?它有什么作用?谢谢!

我展示的代码是我的 Web 开发私有框架的一小部分摘录。我已经讨论过可能会发布它 https://stackoverflow.com/questions/990816/how-do-i-release-sell-promote-a-semi-commercial-open-source-project具有双重许可证,或作为商业用途的捐赠软件,但没有什么是其他人不能在短时间内(15-21 天)编写的。如果你愿意你可以在 GitHub 上阅读我的源代码 http://github.com/rk/uFramework/tree/master...但请记住它仍然是 alpha 材料。

许可证是知识共享SA http://creativecommons.org/licenses/by-sa/3.0/us/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

轻量级、基于 PHP 的布局框架...知道吗? [关闭] 的相关文章

  • 使用 DOJO 自动完成文本框

    我正在寻找一种使用 DOJO 进行文本框自动建议的简单方法 我将查询的数据库表 使用 PHP 脚本 以 JSON 形式返回 有超过 100 000 条记录 因此这确实不应该采用 FilteringSelect 或 ComboBox 的形式
  • 如何在php中使用preg添加html属性

    我正在寻找在 php 中编写一个脚本来扫描 html 文档并根据它找到的内容向元素添加新标记 更具体地说 我是扫描文档并为每个元素搜索CSS标记 float right left 如果找到它 它会添加align right left 基于它
  • 如何从字符串中删除所有数字?

    我想删除字符串 0 9 中的所有数字 我写了这段有效的代码 words preg replace 0 words remove numbers words preg replace 1 words remove numbers words
  • 在一个后台为MYSQL的网站上集成搜索

    我有一个位置搜索website http www jammulinks com对于一个城市 我们首先收集该城市所有可能类别的数据 如学校 学院 百货商店等 并将其信息存储在单独的表中 因为每个条目除了名称 地址和电话号码外都有不同的详细信息
  • 使用 dpi 与 dp 缩放图像之间的差异

    我拥有所有由九个补丁位图组成的 dpi 可绘制目录 xxhdpi 和 xxxhdpi 是否必要 可绘制目录中的可绘制资源文件可检索所有缩放的位图 并且我使用可绘制资源文件 现在 我的问题是我还根据大小 小 正常等 创建了 缩放 布局目录 其
  • 尝试获取 Google accessToken

    看起来 无论我做什么 谷歌都在竭尽全力阻止我完成这个研究项目 我的项目让我使用 Google 电子表格作为数据库 并使用所述电子表格中的数据执行程序化的 Google 图片搜索 并向最终用户显示一些结果 设置说明 我开始按照此处的说明进行操
  • Yii2 中 init() 和 __construct() 方法有什么区别

    init 方法 public function init construct method public function construct 那么 它们之间有什么区别 应该使用哪一个呢 init 是从以下对象扩展的任何对象的方法yii b
  • 删除 woocommerce 店面主页标题 php

    我正在使用 woocommerce 的店面主题 我需要用 php 删除主页标题 h1 我知道 css 解决方案 但我不想使用它 因为我想将 h1 添加到该页面的其他位置 并且在一个页面中包含 2 个 h1 对 seo 不利页 我也知道删除页
  • 在 null laravel 上调用成员函数 save()

    大家好 我正在使用 laravel 5 多态关系将数据保存在数据库中 但我遇到了一些问题 当我尝试将数据保存在数据库中时 它会抛出此错误 对 null 调用成员函数 save 我不知道为什么我会遇到这个错误 我正在关注多态关系的本教程在 L
  • 如何在 Smarty 中打印 json

    我从 api 获取 json 如何使用 Smarty 打印 json Json格式 first name jinu last name mk loginid email protected cdn cgi l email protectio
  • 重新排列数组键 php [重复]

    这个问题在这里已经有答案了 我有这个数组 Array 15 gt 13 1 16 gt Mark one answer 19 gt You see a car on the hard shoulder of a motorway with
  • 如何在 Twitter Card 中传递动态图像路径?

    我在用
  • PHP 错误警告:参数 1 应该是引用

    我 熟悉 PHP 我的朋友的网站因错误而崩溃 Warning Parameter 1 to Some function name expected to be a reference value given in public html i
  • 我怎样才能让这个脚本在 WordPress 上运行?

    我有这个脚本 document ready function text1 click function this hide 代码html div class div1 p class text1 text to appear when th
  • wordpress - 像 stackoverflow 中那样内嵌 ajax 注释

    我有一个 WordPress 博客 希望为人们提供与 stackoverflow 中添加评论相同的用户体验 有很多评论 ajax 插件 但我找不到一个可以使用的插件 它允许您在主页上内联 进入并添加评论 而无需先深入到单独的单个帖子页面 任
  • 使用 PHP 和 OAuth 访问 SkyDrive

    我想使用 PHP 访问 skyDrive 我想检索文件和文件夹列表 下载 上传和删除文件 我有一个 microsoft dev clientID 和 clientSecret 有人可以帮助我开始使用 OAuth 连接到 skyDrive 并
  • 如何确保在 PHP 的“foreach”循环中重置该值?

    我正在写一个简单的 PHP 页面和一些foreach使用了循环 以下是脚本 arrs array a b c foreach arrs as arr if substr arr 0 1 b echo This is b End of fir
  • PHP 中的多个插入查询[重复]

    这个问题在这里已经有答案了 我正在尝试创建一个 php html 表单 它将结果插入到狗展数据库中 问题是 无论我做什么 我都会收到此错误 查询失败 您的 SQL 语法有错误 检查与您的 MySQL 服务器版本相对应的手册 了解在 INSE
  • Doctrine DQL 从 join 返回平面数组

    我通过 DQL 中的常规 LEFT JOIN 选择 3 个实体 它们通过连接表关联 连接表还定义了实体以及带注释的关系 查询执行没有问题 但我的结果作为平面数组返回 我期望一个包含三个实体作为每个索引的数组元素的数组 SELECT e1 e
  • 如何在数据列表 HTML PHP 中设置选择

    您好我想知道是否有一种方法可以在数据列表中设置选定的值 我想要这样的东西

随机推荐