PHPackages                             ivupcn/restina - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. ivupcn/restina

ActiveLibrary[Framework](/categories/framework)

ivupcn/restina
==============

A lightweight PHP framework based on Slim and Eloquent ORM

v1.1.6(2mo ago)020Apache-2.0PHPPHP ^8.4

Since Feb 1Pushed 2mo agoCompare

[ Source](https://github.com/ivupcn/restina-framework)[ Packagist](https://packagist.org/packages/ivupcn/restina)[ Docs](https://github.com/ivupcn/restina-framework)[ RSS](/packages/ivupcn-restina/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (18)Versions (18)Used By (0)

Restina Framework
=================

[](#restina-framework)

一个基于 Slim 框架和 Eloquent ORM 构建的轻量级 PHP 框架，用于快速开发 API。

Restina是一个免费开源的，快速、简单的面向对象的轻量级PHP开发框架，是为了敏捷WEB应用开发和简化应用开发而诞生的。Restina秉承简洁实用的设计原则，在保持出色的性能和至简代码的同时，更注重易用性。遵循Apache2开源许可协议发布，意味着你可以免费使用Restina，甚至允许把你基于Restina开发的应用开源或商业产品发布/销售。

主要新特性
-----

[](#主要新特性)

- 采用`PHP8`强类型（严格模式）
- 支持更多的`PSR`规范
- 系统服务注入支持
- ORM作为独立组件使用
- 全新的Hook系统
- 规范扩展接口
- 对IDE更加友好
- 统一和精简大量用法

> Restina的运行环境要求PHP8.4+。

安装
--

[](#安装)

```
composer require ivupcn/restina

```

配置 PSR-4 自动加载

安装完成后，需要在项目的 [composer.json](composer.json) 文件中添加 PSR-4 命名空间映射配置：

```
{
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        }
    }
}

```

然后运行以下命令重新生成自动加载文件：

```
composer dump-autoload

```

使用 Nginx ，修改你的项目对应的配置：

```
location / {
    try_files $uri /index.php$is_args$args;
}

```

启动服务

```
cd tp
php restina run

```

然后就可以在浏览器中访问

```
http://localhost:8000

```

如果需要更新框架使用

```
composer update ivupcn/restina

```

目录结构
----

[](#目录结构)

```
www  WEB部署目录（或者子目录）
├─app           应用目录
│  ├─Commands           Cli控制器目录
│  ├─Controllers        控制器目录
│  ├─Filters            过滤器目录
│  ├─Hooks              Hook目录
│  ├─Middlewares        中间件目录
│  ├─Models             模型目录
│  ├─Views              视图目录
│  ├─config.php         配置文件
│  ├─hooks.php          钩子配置文件
│  └─middlewares.php    中间件配置文件
│
├─public                WEB目录（对外访问目录）
│  ├─index.php          入口文件
│
├─extend                扩展类库目录
├─runtime               应用的运行时目录（可写，可定制）
├─vendor                Composer类库目录
├─composer.json         composer 定义文件
├─LICENSE               授权说明文件
├─README.md             README 文件

```

命名规范
----

[](#命名规范)

`Restina`遵循PSR-2命名规范和PSR-4自动加载规范。

### 目录和文件

[](#目录和文件)

- 目录使用小写+下划线；
- 类库、函数文件统一以.php为后缀；
- 类的文件名均以命名空间定义，并且命名空间的路径和类库文件所在路径一致；
- 类（包含接口和Trait）文件采用驼峰法命名（首字母大写），其它文件采用小写+下划线命名；
- 类名（包括接口和Trait）和文件名保持一致，统一采用驼峰法命名（首字母大写）；

### 函数和类、属性命名

[](#函数和类属性命名)

- 类的命名采用驼峰法（首字母大写），例如 User、UserType；
- 函数的命名使用小写字母和下划线（小写字母开头）的方式，例如 get\_client\_ip；
- 方法的命名使用驼峰法（首字母小写），例如 getUserName；
- 属性的命名使用驼峰法（首字母小写），例如 tableName、instance；
- 特例：以双下划线\_\_打头的函数或方法作为魔术方法，例如 \_\_call 和 \_\_autoload；

### 常量和配置

[](#常量和配置)

- 常量以大写字母和下划线命名，例如 APP\_PATH；
- 配置参数以小写字母和下划线命名，例如 url\_route\_on 和url\_convert；
- 环境变量定义使用大写字母和下划线命名，例如APP\_DEBUG；

### 数据表和字段

[](#数据表和字段)

- 数据表和字段采用小写加下划线方式命名，并注意字段名不要以下划线开头，例如 restina\_user 表和 restina\_name字段，不建议使用驼峰和中文作为数据表及字段命名。

请求流程
----

[](#请求流程)

- 载入Composer的自动加载autoload文件
- 实例化系统应用基础类Restina\\App
- 获取应用目录等相关路径信息
- 加载应用配置
- 设置运行环境
- 载入Hook配置
- 注册核心服务
- 注册自定义服务
- 启动服务
- 注册控制器
- 注册中间件
- 启动控制器

入口文件
----

[](#入口文件)

Restina采用单一入口模式进行项目部署和访问，一个应用都有一个统一（但不一定是唯一）的入口。

默认的应用入口文件位于public/index.php，默认内容如下：

```
