tebe/pingcrm-yii2

基于 Yii 2 的 Ping CRM - 一个演示应用,展示 Inertia.js 的工作原理

dev-master 2022-12-06 20:21 UTC

README

Build & Deploy

Ping CRM on Yii 2

一个演示应用,展示 Inertia.js 的工作原理。

使用 Inertia,您可以使用经典的服务器端路由和控制器来构建单页应用,而无需构建 API。

此应用是原始的 Ping CRM(使用 Laravel 编写) 的移植版本,并基于 Yii 2 Basic 项目模板

演示

https://pingcrm-yii2.tebe.ch

安装

在本地克隆存储库

git clone https://github.com/tbreuss/pingcrm-yii2 pingcrm-yii2
cd pingcrm-yii2

安装 PHP 依赖项

composer install

安装 NPM 依赖项

npm ci

构建资源

npm run dev
npm run css-dev

创建 SQLite 数据库。您也可以使用其他数据库(MySQL、Postgres),只需相应地更新您的配置即可。

touch database/database.sqlite

运行数据库迁移

php yii migrate

运行数据库填充

php yii db/seed

运行开发服务器(输出将提供地址)

php yii serve

您已准备好开始!在浏览器中访问 Ping CRM,并使用以下凭据登录:

运行测试

要运行 Ping CRM 测试,请运行

(to be done)

需求

  • PHP >= 5.6.0
  • Node.js & NPM
  • SQLite

扩展此项目

在扩展此项目以添加新功能时,需要执行以下步骤。

在后台

  • 添加新的控制器,该控制器继承自 Inertia 控制器
  • 添加一个或多个操作
  • 从操作中返回时调用 Inertia 渲染方法
<?php

namespace app\controllers;

use tebe\inertia\web\Controller;

class CustomController extends Controller
{
    public function actionIndex()
    {
        $params = [
            'data' => [],
        ];
        return $this->inertia('demo/index', $params);
    }
}

您可以在 https://github.com/tbreuss/yii2-inertia 上找到更多信息。

在前端

  • resources/js/Pages 下为后端中添加的每个控制器操作添加一个新页面
  • 复制并粘贴现有的页面示例之一
  • 根据需要实现和/或扩展 Vue.js
  • 使用此处和 package.json 中描述的前端工具

您可以在 https://inertia.laravel.net.cn 上找到更多信息。

致谢

  • 原始工作由 Jonathan Reinink (@reinink) 和贡献者完成
  • 移植到 Yii 2 由 Thomas Breuss (@tbreuss) 完成