fokuscms/blackhound

fokus cms 后端框架

dev-master 2015-10-20 06:59 UTC

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 组件。

测试您的安装

只需访问您创建的目录,您将看到以下欢迎屏幕: The Welcome Screen

经验丰富的开发者的注意事项:您可能会说将 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/HomeControllerindex() 操作。

让我们为我们的 "Hello world"-页面创建自己的路由

$router->get('/hello-world', 'HomeController::hello', array('name' => 'hello'));

现在我们已经创建了一个到 /hello-world 的路由,该路由应该调用 HomeControllerhello()

控制器

现在让我们转向控制器。您会发现已经存在 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 做更多的事情(尽管我们现在处于开始阶段,目前还没有实现那么多)。查看详细组件页面以获取更多信息。