gabela/micro-framework

这是PHP框架社区中的下一个大事件

安装: 1

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 4

分支: 0

开放问题: 1

类型:项目

1.3.3 2024-04-16 13:56 UTC

README

gabela logo

Gabela 框架

Gabela 是一个轻量级的PHP框架,旨在简化Web应用程序的开发。它遵循MVC(模型-视图-控制器)架构,并提供构建可扩展和可维护应用程序的基本工具。此框架旨在最小化开发复杂性,并为开发者提供选择他们偏好的模板语言、样式框架(例如,Bootstrap)和jQuery库的自由。

概述

Gabela 旨在在简单性和灵活性之间取得平衡。以下是关键功能和原则:

  • 灵活性: Gabela 不强制执行严格的约定,允许开发者选择他们偏好的工具和库来处理模板和样式。使用Bootstrap或任何其他适合您项目的CSS框架。

  • 模板语言: Gabela 提供使用您选择的任何模板语言的自由。无论是纯PHP还是像Twig这样的模板引擎,您都有灵活性来根据您的偏好来结构您的视图。

  • 安全重点: Gabela 强调用户身份验证和持续安全。它包括帮助开发者构建安全应用程序的功能和实践,并且设计用于适应不断发展的安全标准。

  • 身份验证: 框架简化了用户身份验证,使实施安全的登录系统和保护应用程序的敏感区域变得容易。

  • 模块结构: 将您的应用程序组织成模块以提高结构和可维护性。使用 vendor 目录进行第三方模块,并以模块结构创建您的模块。

  • 选择自由: Gabela 不会将开发者限制在特定的一组工具或库中。它鼓励使用行业标准组件,但让您根据项目需求做出选择。

目录

  1. 安装
  2. 入门
  3. 配置
  4. 路由
  5. 控制器
  6. 模型
  7. 视图
  8. 辅助函数
  9. 中间件
  10. 模块
  11. 错误处理

安装

  1. 克隆Gabela仓库: https://github.com/your-username/gabela.git

    git clone https://github.com/gabela-framework/gabela.git
  2. 使用Composer安装依赖项

    composer install
  3. 配置您的Web服务器以指向根目录,如果使用Apache,请确保根据需要更改 .htaccess 中的Base。

入门

Gabela 采用简单直观的结构。入口点是 gabela 目录中的 index.phpbootstrap.php 文件。

配置

配置设置存储在 config 目录中。更新 gabela/config/config.php 文件以设置特定环境的配置。

路由

router.php 文件中定义路由。使用 Gabela\Core\Router 类将URL映射到控制器操作。

$router->get('/', 'HomeController::index')->pass('guest');
$router->post('/submit', 'FormController::submit')->pass('auth');
$router->post('/admin', 'AdminPageController::Index')->pass('admin');

此框架的路由非常独特且复杂,但易于实现,复杂路由的驱动是为了确保通过实现中间件来满足应用程序的安全性。

控制器

  • 控制器处理用户请求并调用相应的操作。在控制器目录中创建控制器。
  • gabela\core 中您将找到声明 renderView 和 getTemplate 方法的抽象类。
class HomeController extends ControllerAbstract
{
    public function index()
    {
        $this->getTemplate('home');
    }
}

模型

模型表示应用程序的数据和业务逻辑。在模型目录中创建模型。

class User implements UserInterface
{
    // Model methods here
}

视图

视图存储在视图目录中。使用纯HTML或模板引擎来编写视图。

<!-- views/home.php -->
<html>
<body>
    <h1>Welcome to Gabela Framework</h1>
</body>
</html>

辅助函数

助手是可以在整个应用程序中使用的实用函数。为添加更多功能自定义助手目录。

// helpers/weatherApi.php
function getCurrentWeather()
{
    // Weather fetching logic
}

中间件

中间件提供了一种方便的机制来过滤进入应用程序的HTTP请求。通过自定义中间件目录来添加中间件。

模块

将应用程序组织成模块以提高结构和可维护性。使用供应商目录来存放第三方模块。作为框架的beta版本创建的第一个模块是gabela-users,您在安装框架时会获得它。您也可以使用composer来安装它。

composer require gabela/gabela-users

您可以在vendor/gabela/gabela-users中找到此模块。

错误处理

使用ErrorHandler类中定义的错误处理器优雅地处理错误。

本文档提供了Gabela框架的基本概述。有关每个组件的更详细信息,请参阅源代码和注释。

有关高级功能和自定义选项,请参阅官方文档或开发者社区。

在Gabela框架中创建您的第一个“Hello World”页面

步骤1:创建控制器

首先在gabela/controllers目录中创建一个控制器类。以下是如何创建HelloWorldController的示例片段

<?php

namespace Gabela\Controller;

class HelloWorldController extends \Gabela\Core\AbstractController
{
    public function Action()
    {
        // Your controller logic goes here
        printValue('Hello World');
    }
}

步骤2:配置您的路由器

router.php文件中,配置您新页面的路由

$router->get("{$extensionPath}/hello-world", "HelloWorldController::Action")->pass('guest');

步骤3:添加命名空间和路径

gabela/config/GabelaPathsConfig.php文件中,集成控制器的命名空间和路径

'HelloWorldController' => [
    'namespace' => 'Gabela\\Controller\\',
    'path' => BASE_PATH . '/gabela/controllers/',
],

现在您已准备就绪!导航到您的页面http://site.local/hello-world并见证“Hello World”消息的实际效果。

用Gabela框架快乐编码!🚀