fokuscms / blackhound
fokus cms 后端框架
Requires
- php: >=5.5.9
- fokuscms/components: dev-master
This package is auto-updated.
Last update: 2024-09-18 17:50:24 UTC
README
注意:您可以在项目网站上找到完整的文档: http://blackhound.de/docs/
本指南是关于什么的?
本简要指南用于开始使用 Blackhound。它将为您提供一个简单的分步介绍,如何使用该框架创建一个小的应用程序。在完成本指南后,您将理解基本概念。更多细节将在完整文档中解释。
什么是 Blackhound?
Blackhound 是一个简单的基于 PHP 的框架,它被创建为 fokus² CMS 的基础。它使用常见的 Web 开发约定和组件,以确保您能够与我们一起改进这个框架。
Blackhound 使用许多其他著名 PHP 项目的组件,例如 Symfony2 组件和 Illuminate 组件(Laravel)。但是,框架比其他框架更简单,旨在支持开发者尽可能快地创建应用程序,并减少边界。
安装 Blackhound
此框架的设置非常简单,以下要求如下
- 一个 Web 服务器(例如,建议使用 Apache 模块 mod_rewrite)
- 至少 PHP 5.5
- 由 Illuminate 支持的数据库(例如 MySQL)
首先,使用官方页面的说明安装 Composer。我们建议全局安装 Composer,因为您肯定还需要它来处理其他基于 PHP 的项目。
现在,将您的命令行工具移动到您要安装项目的目录,并调用以下命令,该命令将克隆 Blackhound 及其依赖项到该文件夹。
composer create-project fokuscms/blackhound <your-project-name> --prefer-dist
将 <your-project-name>
替换为您的项目名称。由 Composer 创建的新目录将是您的项目根目录。
注意(alpha 版本) 由于尚无稳定版本,您应在上述命令中添加前缀
-s dev
。您还需要安装 git 以下载 fokuscms 组件。
测试您的安装
经验丰富的开发者的注意事项:您可能会说将
index.php
作为应用程序的入口点并不是最佳方式,而是使用一个公共文件夹,虚拟主机指向该文件夹。您在这个问题上绝对是正确的。但我们仍然选择了这种方式,因为 Blackhound 主要是为了成为 fokus² CMS 的框架而制作的,这个内容管理系统被许多用户在免费托管服务上使用,这些服务不支持更改文档根目录。未来我们将提供另一种方式,但到目前为止,这应该是可以接受的。
Hello World
到目前为止,我们已经成功安装了 Blackhound,现在是时候创建我们的第一个应用程序了。
路由
当您在 IDE 中打开项目时,您将看到以下项目结构
<your-project-name>
-- content/
-- lang/
-- de-DE/
-- system/
-- app/
-- Http/
-- Controllers/
-- views/
-- config/
-- vendor/
index.php
composer.json
composer.lock
这里列出的文件和目录数量比实际多,但足以展示项目的基本结构。项目的入口点是 index.php
。每个发送的请求都将由这个文件处理。首先,它会查找与您已注册的路径匹配的请求路径。
您可以在 system/app/Http/routes.php
中注册您的路由。您会在该文件中找到一个匹配欢迎屏幕的示例路由。
$router->get('/', 'HomeController::index', array('name' => 'home'));
该路由与项目的入口点 /
匹配,并启动位于 /system/app/Http/Controllers/
的 HomeController
的 index()
操作。
让我们为我们的 "Hello world"-页面创建自己的路由
$router->get('/hello-world', 'HomeController::hello', array('name' => 'hello'));
现在我们已经创建了一个到 /hello-world
的路由,该路由应该调用 HomeController
的 hello()
。
控制器
现在让我们转向控制器。您会发现已经存在 index()
方法。您会看到它所做的只是返回 $this->render();
的结果。
此函数接受视图文件作为第一个参数,以及一个包含数据的数组作为第二个参数。因此,它将使用定义的视图文件创建一个响应,并用数组中定义的变量替换所有变量。
因此,让我们创建我们的操作。在我们路由的定义中,我们调用的是 "hello" 函数,所以在这里我们也必须命名为 hello()
。我们将渲染一个名为 "hello" 的视图。
在示例函数中,您可以看到 "index:index.php"
作为视图文件的参数。冒号简单地是文件夹之间的分隔符。因此,在这种情况下,您可以说视图文件位于 index/
目录中,文件名为 index.php
。视图的起点始终是 /system/app/views
。如果您现在查找此文件,您将找到视图文件。
视图
所以现在在我们的控制器中,我们创建了以下函数
public function hello(){
return $this->render("hello.php", []);
}
现在是我们创建视图文件的时候了。根据上面的解释,视图文件应该创建在 /system/app/views/hello.php。现在很容易。只需创建一个简单的HTML文件,就像您所知道的那样,例如以下的一个
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Welcome to Blackhound!</title>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<h1>Hello world </h1>
</body>
</html>
如果您现在在浏览器中打开这个路由,将显示 exactly this screen。很简单,对吧?这是一个快速入门。当然,您可以使用 Blackhound 做更多的事情(尽管我们现在处于开始阶段,目前还没有实现那么多)。查看详细组件页面以获取更多信息。