教程:Vökuró

最后更新于:2022-04-02 05:13:17

[TOC] # 教程:Vökuró Vökuró是另一个示例应用程序,您可以使用它来了解有关Phalcon的更多信息。Vökuró是一个小型网站,展示了如何实现安全功能以及用户和权限管理。您可以从[Github](https://github.com/phalcon/vokuro)克隆其代码。 ## 项目结构 在文档根目录中克隆项目后,您将看到以下结构: ```bash vokur app/ config/ controllers/ forms/ library/ models/ views/ cache/ public/ css/ img/ schemas/ ``` 该项目遵循与INVO非常相似的结构。在浏览器`http://localhost/vokuro`中打开应用程序后,您将看到如下内容: ![](https://docs.phalconphp.com/images/content/tutorial-vokuro-1.png) 该应用程序分为两个部分,一个是前端,访问者可以在其中注册服务,另一个是管理用户可以管理注册用户的后端。前端和后端都组合在一个模块中。 ## 加载类和依赖 该项目使用`Phalcon\Loader`在项目和作曲家中加载控制器,模型,表单等,以加载项目的依赖。因此,在执行Vökuró之前,您必须做的第一件事是通过[composer](https://getcomposer.org/)安装其依赖。假设您已正确安装,请在控制台中键入以下命令: ```bash cd vokuro composer install ``` Vökuró使用Swift发送电子邮件以确认注册用户的注册,`composer.json`看起来像: ```json { "require" : { "php": ">=5.5.0", "ext-phalcon": ">=3.0.0", "swiftmailer/swiftmailer": "^5.4", "amazonwebservices/aws-sdk-for-php": "~1.0" } } ``` 现在,有一个名为`app/config/loader.php`的文件,其中设置了所有自动加载的东西。在此文件的末尾,您可以看到包含composer自动加载器,使应用程序能够自动加载下载的依赖项中的任何类: ```php registerNamespaces( [ 'Vokuro\Models' => $config->application->modelsDir, 'Vokuro\Controllers' => $config->application->controllersDir, 'Vokuro\Forms' => $config->application->formsDir, 'Vokuro' => $config->application->libraryDir, ] ); $loader->register(); // ... ``` 我们使用`registerDirectories()`而不是使用`registerNamespaces()`。每个命名空间都指向配置文件(`app/config/config.php`)中定义的目录。例如,命名空间`Vokuro\Controllers`指向`app/controllers`,因此该命名空间中的应用程序所需的所有类都需要它的定义: ```php view->form = $form; } } ``` 此操作只是将`SignUpForm`的表单实例传递给视图,该视图本身被呈现以允许用户输入登录详细信息: ```twig {{ form('class': 'form-search') }}

Sign Up

{{ form.label('name') }}

{{ form.render('name') }} {{ form.messages('name') }}

{{ form.label('email') }}

{{ form.render('email') }} {{ form.messages('email') }}

{{ form.label('password') }}

{{ form.render('password') }} {{ form.messages('password') }}

{{ form.label('confirmPassword') }}

{{ form.render('confirmPassword') }} {{ form.messages('confirmPassword') }}

{{ form.render('terms') }} {{ form.label('terms') }} {{ form.messages('terms') }}

{{ form.render('Sign Up') }}

{{ form.render('csrf', ['value': security.getToken()]) }} {{ form.messages('csrf') }}
{{ endForm() }} ```
';