## **预览**
在本教程中,我们将创建一个带有简单注册表单的应用程序,同时介绍Phalcon的主要设计方面
本教程介绍了一个简单的MVC应用程序的实现,展示了使用Phalcon实现它是多么快速和容易。一旦开发完成,您就可以使用这个应用程序并扩展它以满足您的需要。本教程中的代码也可以用来学习Phalcon特定概念和想法。
如果你只是想开始,你可以跳过这一步,用我们的开发工具自动创建一个Phalcon项目。
使用本指南的最佳方法是按照本指南进行操作,并尝试从中获得乐趣。您可以在这里获得完整的代码。如果您遇到问题或有问题,请访问我们的Discord或我们的论坛。
## **目录结构**
**Phalcon的一个关键特征是它是松散耦合的。**因此,您可以使用任何方便的目录结构。在本教程中,我们将使用MVC应用程序中常用的标准目录结构。
```
└── 根目录
├── app
│ ├── controllers
│ │ ├── IndexController.php
│ │ └── SignupController.php
│ ├── models
│ │ └── Users.php
│ └── views
└── public
├── css
├── img
├── index.php
└── js
```
> 注意:由于Phalcon暴露的所有代码都封装在扩展中(你已经在你的web服务器上加载了),你不会看到包含Phalcon代码的供应商目录。你需要的一切都在内存中。如果您还没有安装应用程序,请转到安装页面并在继续本教程之前完成安装
如果这是全新的,建议你也安装Phalcon Devtools。DevTools利用PHP内置的web服务器,让你几乎可以立即运行你的应用程序。如果你选择了这个选项,你需要在你的项目根目录下有一个.htrouter.php文件,包含以下内容:
```
<?php
$uri = urldecode(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
if ($uri !== '/' && file_exists(__DIR__ . '/public' . $uri)) {
return false;
}
$_GET['_url'] = $_SERVER['REQUEST_URI'];
require_once __DIR__ . '/public/index.php';
```
在我们的教程中,这个文件必须位于教程目录中。
你也可以使用nginX, apache, cherokee或其他web服务器。您可以查看web服务器设置页面的说明。
## **启动**
您需要创建的第一个文件是引导文件。该文件充当应用程序的入口点和配置。在这个文件中,您可以实现组件的初始化,也可以定义应用程序的行为。
#### 这个文件处理3件事:
* 组件自动装弹机的注册
* 配置服务并将它们注册到依赖注入上下文中
* 解析应用程序的HTTP请求
## 自动加载
我们将使用Phalcon\\Loader一个符合PSR-4的文件加载器。通常应该添加到自动装弹器的是你的控制器和模型。您还可以注册目录,以便扫描应用程序所需的文件。
首先,让我们使用Phalcon\\Loader注册我们应用程序的控制器和模型目录:
`public/index.php`
```
<?php
use Phalcon\Loader;
define('BASE_PATH', dirname(__DIR__));
define('APP_PATH', BASE_PATH . '/app');
// ...
$loader = new Loader();
$loader->registerDirs(
[
APP_PATH . '/controllers/',
APP_PATH . '/models/',
]
);
$loader->register();
```