cocoli6000 2020-03-17 12:13:44 10945次浏览 4条评论 6 6 0

本引擎采用YII V2.0.32搭建,其运行环境与yii2(php>=5.6)一致。
xwom旨在为yii2爱好者提供一个基础功能稳定完善的系统,使开发者更专注于业务功能开发。xwom没有对yii2做任何的修改、封装,但是把yii2的一些优秀特性几乎都用在了xwom上, 但xwom提倡简洁、快速上手,基于xwom开发可以无需文档,可以在此基础开发其实际应用,譬如:cms内容管理系统、门户网站、商城、ERP、OA、采编、采集等。

一、更新记录Records

1.0.0beta1 开启xwom开发引擎beta1,预装常用扩展组件,对配置文件做细致的注释说明。

二、帮助Help

(1)QQ群: 170794993 欢迎xwom爱好者加入。

(2)Email: chareler@163.com

(3)如有纰漏或不足,勿吐槽,欢迎提出建议,直接Issues 或 Email。

三、功能

  • 多语言
  • 菜单管理
  • GII 模板
  • 加载X-admin (layui) 模板
  • RBAC实现管理员、角色、部门、团队、单位、应用 6个维度权限管理
  • 开启API应用
  • 计划管理
  • 流程管理WorkFlow(BPM)工作流驱动业务数据流转
  • 全栈全局设置管理
    包括:
    • 全栈基础配置
    • 全栈邮件配置
    • 全栈短信配置
    • 全栈多语言包管理
    • 全栈搜索引擎配置
    • 全栈DB引擎配置
    • 全栈数据可视化迁移
    • 全栈变量配置
    • 全栈常量配置
    • 全栈API设置
    • 系统信息
    • IP黑名单
  • 全栈日志管理
    • 全局日志
    • 短信日志
    • 邮件日志
    • 行为日志
  • 开启APP子应用开发

四、快速体验Experience

demo地址 http://xwom.womtech.cn 测试管理员账号:参见QQ群 170794993 群内公告

更多核心功能,请继续关注

友情提示:数据每天、每6小时,将还原更新一次,如果您提交操作数据,如果不见了,切勿诧异,您懂的。

五、项目说明:

1、管理台项目在site1——backend(站点1)->web,m站项目在site1——backend(站点1)->wap

2、前台项目在site2——frontend(站点2)->web,m站的在site2——frontend(站点2)->wap

3、API项目在site3——API (站点3 )->web,m站的在site3——API (站点3 )->wap

4、项目的框架、外部扩展、组件基本上通过composer来管理

六、项目结构和注意事项,请参看

开发注意事项,请参看开源地址:https://github.com/jinowom/xwom_open 的readme.md 的第十小节、第十一小节、第十二小节。

七、运行效果

login.png
mnu.png
All_set.png
All_set2.png
rabc1.png
rabc2.png

八、安装 Installation

友情提示:建议php版本>=7.1
开源地址:https://github.com/jinowom/xwom_open
克隆当前项目

git clone https://github.com/jinowom/xwom_open.git

1、composer install or composer install --ignore-platform-reqs

2、依次执行以下命令初始化yii2框架以及导入数据库

$ cd webApp
$ php ./init --env=Development #初始化yii2框架,线上环境请使用--env=Production
$ php ./yii migrate/up --interactive=0 #导入迁移备份数据库,执行此步骤之前请先到common/config/main-local.php修改成正确的数据库配置

3、配置web服务器

4、完成
附:web服务器配置

  • Apache

    <VirtualHost *>
      ########此处下面是xwom开发引擎开源地址#
      DocumentRoot path/to/xwom/backend/web/
    ServerName localhost
      #<Directory "path/to/xwom/backend/web/">
      ########此处下面是xwom开发引擎开源地址#
      <Directory "path/to/xwom/backend/web/">
        
              #SetOutputFilter DEFLATE
              #Options FollowSymLinks
              #Options Indexes FollowSymLinks Includes MultiViews ExecCGI
              Options Indexes FollowSymLinks MultiViews
              AllowOverride All
              Order allow,deny
              Allow from all
              DirectoryIndex index.html index.php
    
              # use mod_rewrite for pretty URL support
              RewriteEngine on
              # If a directory or a file exists, use the request directly
              RewriteCond %{REQUEST_FILENAME} !-f
              RewriteCond %{REQUEST_FILENAME} !-d
              # Otherwise forward the request to index.php
              RewriteRule . index.php
      </Directory>
    </VirtualHost>
    
  • Nginx

九 配置Configuration

common/main-local.php

    'components' => [
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=xxx',
            'username' => 'xxx',
            'password' => '',
            'charset' => 'utf8',
        ],
        //……
    ],
backend/main.php

    'modules' => [
        /** migration数据库库迁移模块业务 **/
        'migration' => [
            'class' => 'migration\Module',
        ],
        //……
        /**  workflow BPM2.0**/
        'workflow' => [
            'class' => 'jinostart\workflow\manager\Module',
            'layout' => '//main',
        ],
    ],

    'components' => [
     //……
        /** workflow BPM2.0    * **/
        'view' => [
            'theme' => [
                'pathMap' => [
                    '@app/views' => '@backend/themes/default/views',
                    '@app/widgets' => '@backend/themes/default/widgets',
                    '@vendor/jinostart/yii2-workflow-manager/src/views' => '@backend/themes/default/modules/workflow/views'
                ],
            ],
        ],
        'workflowSource' => [
            'class' => 'jinostart\workflow\manager\components\WorkflowDbSource',
        ],
        //……
    ],
backend/main-local.php

//加载 kartikgii扩展组件,并集成自定义Gii,美哒哒 
  $config['modules']['gii']['class'] = 'yii\gii\Module';
  $config['modules']['gii']['allowedIPs'] = ['127.0.0.1','::1'];//只允许本地访问gii  用逗号隔开,添加自己的指定地址
  $config['modules']['gii']['generators'] = [
          'kartikgii-crud' => ['class' => 'warrence\kartikgii\crud\Generator'],
        /*重新定义gii model & crud的生成模板*/
         'model'=> [
             'class' => 'yii\gii\generators\model\Generator',
             'baseClass'=> 'base\BaseActiveRecord',
             'templates'=> [
                 'xwom'=>'@backend/components/gii/model/default',
             ]
         ],
         'module'=> [
             'class' => 'yii\gii\generators\module\Generator',
             'templates'=> [
                 'xwom'=>'@backend/components/gii/module/default',
             ]
         ],
         'crud' => [
             'class' => \backend\components\gii\crud\Generator::class,//'class' => \backend\components\gii\crud\Generator::className(),
             'templates' => [
                 'xwom' => '@backend/components/gii/crud/default',
                 'default' => '@vendor/yiisoft/yii2-gii/src/generators/crud/default',//这是yii 自己自带的
             ]
         ],
         'controller' => [
             'class' => \backend\components\gii\controller\Generator::class,
             'templates' => [
                 'xwom' => '@backend/components/gii/controller/default',
                 'default' => '@vendor/yiisoft/yii2-gii/src/generators/controller/default',//这是yii 自己自带的
             ]
         ],
         'extension' => [
             'class' => \backend\components\gii\extension\Generator::class,
             'templates' => [
                 'xwom' => '@backend/components/gii/extension/default',
                 'default' => '@vendor/yiisoft/yii2-gii/src/generators/controller/default',//这是yii 自己自带的
             ]
         ],
      ];

十、特别鸣谢Links

觉得很赞
  • 评论于 2021-03-28 14:34 举报

    【码云】 同步地址 https://gitee.com/jinostart/xwom_open

  • 评论于 2020-04-01 14:40 举报

    数据迁移
    参见https://github.com/jinowom/xwom_open
    六、安装 Installation
    依次执行以下命令初始化yii2框架以及导入数据库

    $ cd webApp
    $ php ./init --env=Development #初始化yii2框架,线上环境请使用--env=Production
    $ php ./yii migrate/up --interactive=0 #导入迁移备份数据库,执行此步骤之前请先到common/config/main-local.php修改成正确的数据库配置
    
    
  • 评论于 2020-04-01 14:18 举报

    SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO),
    请问大佬数据库配置文件是哪一个啊?我把main-local都配置了还是报错。谢谢大佬解答!

    2 条回复
    评论于 2020-04-01 14:41 回复

    数据迁移
    参见https://github.com/jinowom/xwom_open
    六、安装 Installation
    依次执行以下命令初始化yii2框架以及导入数据库

    $ cd webApp
    $ php ./init --env=Development #初始化yii2框架,线上环境请使用--env=Production
    $ php ./yii migrate/up --interactive=0 #导入迁移备份数据库,执行此步骤之前请先到common/config/main-local.php修改成正确的数据库配置
    
    评论于 2020-04-01 19:33 回复

    谢谢了! 修改数据库密码后恢复正常。

  • 评论于 2020-03-24 09:19 举报

    你好,这个引擎中,多语言模块实现的最终路由是什么样的?

    http://www.yii2.com(中文), http://en.yii2.com(英文), http://de.yii2.com(德国)

    或者:

    http://www.yii2.com(中文), http://www.yii2.com/en(英文), http://www.yii2.com/en(德国)

    6 条回复
    评论于 2020-03-24 22:33 回复

    实现语言模板切换,
    有两种方法:
    a:
    需要给每个controller进行初始化(都写上init函数),在init函数中主要就是给 Yii::$app->language 赋值。例如:Yii::$app->language = 'zh-CN'
    b:
    在web/index.php(入口文件)中,将创建应用的代码改为下面的代码

    $application = new yii\web\Application($config);
    $application->language = isset(\Yii::$app->session['language']) ? \Yii::$app->session['language'] : 'en';
    $application->run();
    
    评论于 2020-03-25 07:32 回复

    这一块我大概明白,我是说最后生成的路由,是什么形式的?

    评论于 2020-03-25 08:51 回复

    只要创建的app 业务,数据库字典,该app支持多子站点,那么该app的任何一个站点,选择其需要默认语言,就OL.

    评论于 2020-03-25 08:57 回复

    无需 用二级域名那么麻烦。如果urlManager的美化, 直接给一级域名或二级域名的泛域名;譬如 http://www.yii2.com/site1/index.shtml(CN) http://www.yii2.com/site2/index.shtml (EN) ……

    评论于 2020-03-25 09:39 回复

    多语言的解决方案,体现在url上,一般就上面我说的2种,相对来说,第二种有现成的扩展可以用,之前我用过,你可以看一下:https://github.com/codemix/yii2-localeurls。
    我们老板要求用第一种,就是二级域名的形式

    评论于 2020-03-25 11:38 回复

    是的,赞同您的践行结论,
    以上两种方式,都可以解决 操作界面的同时都多语言化;
    如果让 应用本身数据内容和 操作界面的多语言化,就需结合我说的:所创建app 业务,在其数据库字典中该app支持多子站点,那么该app的任何一个站点,选择其需要默认语言,就OL.

您需要登录后才可以评论。登录 | 立即注册