Yii2扩展整理

PHPer 2020-04-06 764次浏览 0条评论 0 0 0
Yii2的各种好用的扩展

这里整理一些自己实测好用的Yii2扩展 20200406...

登录 | 立即注册

更新于:2020-04-06 04:59:03

【坑,勿用】Yii的yii-xunsearch扩展,支持中文的搜索引擎,支持全文索引全文搜索

支持Yii1和Yii2 20200406

https://www.yiiframework.com/extension/yii-xunsearch

yii-xunsearch

xunsearch php sdk, yii1 extension and yii2 ActiveRecord support

Composer 支持Resources

Composer 支持

自 v1.4.9 起,通过 subtree 功能将 xs-sdk-php 分离成为一个只读的子仓库, 以支持通过composer安装。我们的包名称为hightman/xunsearch,内含全部 PHP-SDK 的库文件,还包括支持 Yii 的扩展类。

安装

和绝大多数 composer 一样,你可以通过以下两种方法中的任意一种安装。

可以直接运行

composer require --prefer-dist hightman/xunsearch "*@beta"

或者将以下内容添加到您的项目根目录composer.json中的require章节, 然后运行composer install

"hightman/xunsearch": "*@beta"
Tip:如果您打算用代码仓库中的最新版本,请将星号改为 dev-master。
命令行工具
vendor/bin/xs help
Yii-1.x 用法

这是对 xunsearch 的一个简单封装,使之更适合 yii-1.x 的用法习惯。首先, 在应用入口文件最开头引入 composer 的 autoload 文件,通常是 index.php。

require_once 'vendor/autoload.php';
// 如有必要请定义常量 XS_APP_ROOT 表示项目文件存放路径
//define ('XS_APP_ROOT', dirname(__FILE__) . '/protected/data');

在应用配置文件的compnents中添加以下代码,通常是 protected/config/main.php

// application components
    'components' => array(
        // ... other components ... 
        'search' => array(
            'class' => 'EXunSearch',
            'project' => 'demo', // 搜索项目名称或对应的 ini 文件路径
            'charset' => 'utf-8', // 您当前使用的字符集(索引、搜索结果)
        ),  
    ),  

然后就可以通过Yii::app()->search来访问EXunSearch对象,进行索引管理或检索。

添加、修改索引数据,使用方法参照XSIndex。 对于 ActiveRecord 对象来讲,建议在相关的afterSaveafterDelete中进行索引同步。

$data = array('pid' => 1234, 'subject' => '标题', 'message' => '内容');
Yii::app()->search->add($data);	// 添加文档
Yii::app()->search->update($data);	// 更新文档
Yii::app()->search->del('1234');	// 删除文档

使用检索功能时,可以将Yii::app()->search当作XSSearch对象一样直接使用它的全部方法。

Yii::app()->search->setQuery('subject:标题');
$docs = Yii::app()->search->setLimit(5, 10)->search();	// 取得搜索结果文档集
Yii-2.x 用法

在 yii2 中,除了提供类似 yii-1.x 的调用方式外,我们还支持 ActiveRecord 方式来操作。首先, 请在应用配置文件的components中添加以下代码,通常是config/web.php...

简单,易用的yii2导入和导出组件( illusion/yii2-excel)

illusion

0

下载:composer require illusion/yii2-excel1.2.0 (下面的代码示例,仅仅适用于1.2.0及1.2.0以下版本,若 使用最新版本,请参考https://packagist.org/packages/illusion/yii2-excel) 使用示例:

return [

'components' => [
    'excel' => [
        'class' => 'illusion\excel\Excel',
    ],
],

];

`` SAMPLE CODE LINKhttps://github.com/lkq0929/illusion-excel/tree/master/exampleNOTICE 目前只支持csv、xls、xlsx三种电子表格的导出和导入 SAMPLE CODE

<?php /**

  • Created by PhpStorm. *
  • Auth: lkqlink@163.com
  • Date: 2018/8/27
  • Time: 14:28 */

namespace app\controllers;

use yii\rest\Controller; use yii\web\UploadedFile;

class ExampleController extends Controller {

/**
 * 单电子表(sheet)、多电子表格导出
 * 导出文件可直接浏览器下载或保存至服务器
 */
public function actionExport()
{
    /*单电子表的电子表格--数据格式
    $cellData = [
        ['部门', '组别', '姓名', '性别'],
        ['一米技术部', 'oms', 'illusion', '男'],
        ['一米技术部', 'oms', 'alex', '男'],
        ['一米技术部', 'pms', 'aaron', '女']
    ];*/
    /*多电子表的电子表格--数据格式*/
    $cellData = [
        'one' => [
            ['部门', '组别', '姓名', '性别'],
            ['一米技术部', 'oms', 'illusion', '男'],
            ['一米技术部', 'oms', 'alex', '男'],
            ['一米技术部', 'pms', 'aaron', '女']
        ],
        'two' => [
            ['类别', '名称', '价格'],
            ['文学类', '读者', '¥5'],
            ['科技类', 'AI之人工智能', '¥100'],
            ['科技类', '物联网起源', '¥500']
        ],
    ];
    $spreadsheet    = \Yii::$app->excel->createSpreadSheet('xls'); // 'xls' 自定义电子表格后缀
    $spreadsheet->write($cellData);
    $spreadsheet->download('department'); //'department' 自定义电子表格名
}

/**
 * 读出电子表格的原生数据并根据自定义属性名装换成对应格式
 * 然后根据你喜欢的方式将数据插入数据表
 *
 * @return array
 */
public function actionImport()
{
    $transData  = [];
    $attributes = [
        'department' => ['department', 'group', 'name', 'sex'],  //'department' 工作表(sheet)名  键值:['department', 'group', 'name', 'sex']列对应的名称,名称顺序必须一致
        'book'       => ['category', 'book_name', 'price'],
    ];
    if (\Yii::$app->request->isPost) {
        $importFile = UploadedFile::getInstanceByName('file');
    }
    $fileName    = explode('.', $importFile->name);
    $spreadsheet = \Yii::$app->excel->createSpreadSheet($fileName[1]); // $fileName[1] 自定义电子表格后缀
    $rawDatas    = $spreadsheet->read($importFile->tempName); //$importFile->tempName 电子表(excel)路径
    foreach ($rawDatas as $sheetName => $rawData) {
        $transData[] = $spreadsheet->columnTo($rawData, $attributes[$sheetName]);  //$rawData 读出的单个工作表(sheet)的原生数据,$attributes[$sheetName] $rawData电子表格中列按照顺序对应的自定义列名
    }
    
    return $transData;
}

/**
 * 读出电子表格的原生数据
 * 根据喜欢的方式插入数据表
 *
 * @return mixed
 */
public function actionImportRaw()
{
    if (\Yii::$app->request->isPost) {
        $importFile = UploadedFile::getInstanceByName('file');
    }
    $fileName    = explode('.', $importFile->name);
    $spreadsheet = \Yii::$app->excel->createSpreadSheet($fileName[1]); //同上注释
    $rawDatas    = $spreadsheet->read($importFile->tempName);
    
    return $rawDatas;
}

}...

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

    Yii2 学习内容整理

    Yii2片段缓存详解yii2常用表单处理方法php yii2 出现mysql-gone-away-2006解决Yii2 数据操作DAO【翻译】 MySQL中yii2使用...

    Yii2片段缓存详解

    yii2常用表单处理方法

    php yii2 出现mysql-gone-away-2006解决

    Yii2 数据操作DAO

    【翻译】 MySQL中yii2使用原生sql CURD

    一篇为你讲透Yii2的widget

    Yii2模块学习

    Yii2提交表单提示无法验证

    解决Yii2 在线上服务器无法访问GII 和BUG工具栏问题

    Yii2 Model的一些常用验证rules规则

    关于Yii2控制器的layout属性

    yii2如何开启debug工具栏

    使用Yii2发送邮件

    Yii2多表联结子查询的应用

    学习yii2.0——数据缓存、片段缓存、页面缓存、http缓存

    Yii2 获取模块名、控制器名、方法名

    收发邮件(Mailing) | Yii 2.0 权威指南

    Yii2中各种文本框的使用 [ 2.0 版本 ]

    Yii Model中rules验证 获取错误信息

    Yii2之gii的配置与使用

    yii2面包屑Breadcrumbs的使用

    使用Yii2遇到的问题整理

    Yii的东西很多,学习和使用的时候遇到了各种各样的问题,这里记录整理下,方便大家分享。composer安...

    Yii2用composer更新时遇到的错误

    Yii2 用composer update 时提示'git' 不是内部或外部命令,也

    Yii2​用composer安装kartik-v/yii2-mpdf时报错,成功解决后,

    使用Yii2的setFlash和bootstrap.min.js遇到的问题,bootstrap.min.js的bug?

    Yii2的action不支持大小写吗?其实是支持的

    composer install 使用tips-网上找的composer install的使用技巧方法

    Yii2模型简介

    模型Model是MVC模型中的M,是业务数据、业务规则和业务逻辑的对象。Yii很好的展现了这点,用户可用创...

    Yii2模型简介-属性

    Yii2模型简介-场景

    Yii2模型简介-验证规则

    Yii2模型简介-块赋值

    Yii2模型简介-非安全属性

    Yii2模型简介-数据导出

    Yii2模型简介-字段

    Yii2模型简介-最佳实践

    Yii2小部件Widget

    Widgets 小部件kop/yii2-scroll-pager:瀑布滚动翻页 样式不怎么好看,必须点击更多才能加载更多yii2-widget-linkpager...
    推荐内容

    怎样使用V2Ray代理和SSTap玩如魔兽世界/绝地求生/LOL台...

    在网上找的ss+SSTap的方式都不能通过SSTap的链接测试。最后找到了v2ray+SSTap的方式。 注意事项,首先单独有v2ray看能不能正常上网。另外加速时要v2ray和SST...

    使用V2Ray的mKCP协议加速游戏

    当前脚本已发布新版本,地址: https://github.com/kuoruan/shell-scripts/raw/master/kcptun/kcptun.sh 旧仓库已废...

    v2rayN已停止工作

    要安装.NET Framework 4.6 或者更高版本

    解决'nmake' 不是内部或外部命令,也不是可运行的程序

    在用gifsicle时,需要在其src目录下使用 nmake -f Makefile.w32 命令,报错 'nmake' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 于是网...

    超省心游戏加速:Wireguard+udp加速(CentOS版)--(

    Wireguard+udpspeeder+udp2raw游戏加速方案 ---------------------------------------错误报告及解决-----------...

    wireguard+udpspeeder+udp2raw多用户配置

    Wireguard+udpspeeder+udp2raw游戏加速方案改进版-实测有效