jlynet-Lockbox(生活加密记事本Qt实现)

jlynet-Lockbox(生活加密记事本),是基于Qt5 开发的生活加密记事本工具,我们将持续推出便于我们工作与生活的实用小工具。请关注我们的官方网站。

软件预览图:

 

链接:https://pan.baidu.com/s/1lD4Wr31pVYMlx3QJgK9qWw 
提取码:ctbx 

版本更新:

2019/01/01 内测v0.5.6.0 增加json 格式化工具,修复一些bug。

2018/10/12 内测v0.5.5.0 全新设计重要记事类型窗口的富文本编写功能。升级数据连接组件、改用线程池连接数据库

2018/06/25 内测v0.5.4.1 修复运行单例模式,增加一些限制参数化配置。

2018/05/22 内测v0.5.4 增加程序运行单例模式运行,增加一些限制参数化配置。准备集成pdf预览功能,先打包dll进程序。

2018/05/16 内测v0.5.3 增加重要记事类型窗口的富文本编写功能。

2018/05/12 内测v0.5.2 修复附件样式和重要记事类型窗口的样式,支持最大化管理。

2018/05/12 内测v0.5.1 修复上传附件编辑无法删除bug,修正通过双击编辑数据分类名称无法保存编辑内容bug。

2018/05/10 内测v0.5 调整架构,不兼容以前版本创建的密码箱文件,新增收支管理信息模块、增加附件上传与下载功能。

2018/05/03  内测v0.4 修复用户体验bug。

2018/04/17  内测v0.3 通过测试正式发布适应与广大用户的内测版本。

jlynet-SSHManager(远程管理工具)

软件简介:

jlynet-SSHManager(远程管理工具),集成FileZilla、mstsc、Notepad++、TightVNC、WinSCP等工具。通过C# 软件编程技术将其整合起来。方便程序员和维护小朋友管理自己的服务器。

下载地址:链接:http://pan.baidu.com/s/1dE5PP6L 密码:j4tl

integratedServer(win php开发环境)

jlynet-integratedServer产品主页预览

介绍:

由于个人工作使用需要,采用C# 编程技术,对一些常用工具进行了启动管理的一些封装,使之能方便使用。

该工具支持php自定义版本只要把对应的php版本放进/jlynet-integratedServer/sbin/PHP 文件夹中就可以加载,集成Memcached、Redis等缓存服务。可以根据使用习惯采用Nginx与Apache ,针对nginx  个人需要在win下实现ffmpeg推流转播,所以重新编译了nginx,加入了两个插件nginx-rtmp-module、ngx_cache_purge。

下载地址:

链接:http://pan.baidu.com/s/1nvSQq2t 密码:kcbe

 

Cygwin的包管理器:apt-cyg

Cygwin的包管理器:apt-cyg

Cygwin的包管理工具setup.exe实在是难用的让人蛋碎。于是就有了这样一个apt-cyg,可以提供类似于 apt-get 的体验。

apt-cyg使用bash编写,所以连编译都省了。

安装apt-cyg

wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg
chmod +x apt-cyg
mv apt-cyg /usr/local/bin/

安装包

apt-cyg install bc

查找包

apt-cyg find php

设置下载站点和缓存目录

apt-cyg -c /cygdrive/d/downloads/cygwin -m http://mirrors.163.com/cygwin/ find php

也可以把默认的缓存和下载站点存到文件中,编辑apt-cyg,找到68行:

#mirror=ftp://mirror.mcs.anl.gov/pub/cygwin#cache=/setupmirror=http://mirrors.163.com/cygwincache=/cygdrive/d/downloads/cygwin

当然,PHP 在 cygwin的官方源中是不存在的,我们可以使用 cygwinports提供的源:

$ apt-cyg -m ftp://ftp.cygwinports.org/pub/cygwinports find php
Working directory is /cygdrive/d/downloads/software/cygwin
Mirror is ftp://ftp.cygwinports.org/pub/cygwinports
--2013-01-08 12:08:07--  ftp://ftp.cygwinports.org/pub/cygwinports/setup.bz2 => “.listing”
正在解析主机 ftp.cygwinports.org (ftp.cygwinports.org)... 209.132.180.131
正在连接 ftp.cygwinports.org (ftp.cygwinports.org)|209.132.180.131|:21... 已连接。
正在以 anonymous 登录 ... 登录成功!==> SYST ... 完成。   ==> PWD ... 完成。==> TYPE I ... 完成。 ==> CWD (1) /pub/cygwinports ... 完成。==> PASV ... 完成。   ==> LIST ... 完成。    [ <=>                                                         ] 966         --.-K/s 用时 0.01s

2013-01-08 12:08:12 (95.4 KB/s) - “.listing” 已保存 [966]已删除 “.listing”。
--2013-01-08 12:08:12--  ftp://ftp.cygwinports.org/pub/cygwinports/setup.bz2           => “setup.bz2”==> 不需要 CWD。==> PASV ... 完成。   ==> RETR setup.bz2 ... 完成。
长度:580198 (567K)100%[============================================================>] 580,198     52.2K/s 用时 16s

2013-01-08 12:08:29 (35.5 KB/s) - “setup.bz2” 已保存 [580198]Updated setup.ini

Searching for installed packages matching php:
php
php-Archive_Tar
php-Console_Getopt
php-PEAR
php-Structures_Graph# 以下省略......

转载地址:http://zengrong.net/post/1792.htm

Yii 2.0 权威指南 认证

认证

认证是鉴定用户身份的过程。它通常使用一个标识符 (如用户名或电子邮件地址)和一个加密令牌(比如密码或者存取令牌)来 鉴别用户身份。认证是登录功能的基础。

Yii提供了一个认证框架,它连接了不同的组件以支持登录。欲使用这个框架, 你主要需要做以下工作:

  • 设置用户组件 yii\web\User ;
  • 创建一个类实现 yii\web\IdentityInterface 接口。

配置 yii\web\User

用户组件 yii\web\User 用来管理用户的认证状态。这需要你 指定一个含有实际认证逻辑的认证类 yii\web\User::identityClass。 在以下web应用的配置项中,将用户用户组件 yii\web\User 的 认证类 yii\web\User::identityClass 配置成 模型类 app\models\User, 它的实现将在下一节中讲述。

return [    'components' => [        'user' => [            'identityClass' => 'app\models\User',
        ],
    ],
];

认证接口 yii\web\IdentityInterface 的实现

认证类 yii\web\User::identityClass 必须实现包含以下方法的 认证接口 yii\web\IdentityInterface:

  • yii\web\IdentityInterface::findIdentity():根据指定的用户ID查找 认证模型类的实例,当你需要使用session来维持登录状态的时候会用到这个方法。
  • yii\web\IdentityInterface::findIdentityByAccessToken():根据指定的存取令牌查找 认证模型类的实例,该方法用于 通过单个加密令牌认证用户的时候(比如无状态的RESTful应用)。
  • yii\web\IdentityInterface::getId():获取该认证实例表示的用户的ID。
  • yii\web\IdentityInterface::getAuthKey():获取基于 cookie 登录时使用的认证密钥。 认证密钥储存在 cookie 里并且将来会与服务端的版本进行比较以确保 cookie的有效性。
  • yii\web\IdentityInterface::validateAuthKey() :是基于 cookie 登录密钥的 验证的逻辑的实现。

用不到的方法可以空着,例如,你的项目只是一个 无状态的 RESTful 应用,只需实现 yii\web\IdentityInterface::findIdentityByAccessToken() 和 yii\web\IdentityInterface::getId() ,其他的方法的函数体留空即可。

下面的例子是一个通过结合了 user 数据表的 AR 模型 Active Record 实现的一个认证类 yii\web\User::identityClass。

<?phpuse yii\db\ActiveRecord;use yii\web\IdentityInterface;class User extends ActiveRecord implements IdentityInterface{    public static function tableName()
    {        return 'user';
    }    /**
     * 根据给到的ID查询身份。
     *
     * @param string|integer $id 被查询的ID
     * @return IdentityInterface|null 通过ID匹配到的身份对象
     */
    public static function findIdentity($id)
    {        return static::findOne($id);
    }    /**
     * 根据 token 查询身份。
     *
     * @param string $token 被查询的 token
     * @return IdentityInterface|null 通过 token 得到的身份对象
     */
    public static function findIdentityByAccessToken($token, $type = null)
    {        return static::findOne(['access_token' => $token]);
    }    /**
     * @return int|string 当前用户ID
     */
    public function getId()
    {        return $this->id;
    }    /**
     * @return string 当前用户的(cookie)认证密钥
     */
    public function getAuthKey()
    {        return $this->auth_key;
    }    /**
     * @param string $authKey
     * @return boolean if auth key is valid for current user
     */
    public function validateAuthKey($authKey)
    {        return $this->getAuthKey() === $authKey;
    }
}

如上所述,如果你的应用利用 cookie 登录, 你只需要实现 getAuthKey() 和 validateAuthKey() 方法。这样的话,你可以使用下面的代码在 user 表中生成和存储每个用户的认证密钥。

class User extends ActiveRecord implements IdentityInterface{
    ......    
    public function beforeSave($insert)
    {        if (parent::beforeSave($insert)) {            if ($this->isNewRecord) {                $this->auth_key = \Yii::$app->security->generateRandomString();
            }            return true;
        }        return false;
    }
}

注意:不要混淆 user 认证类和用户组件 yii\web\User。前者是实现 认证逻辑的类,通常用关联了 持久性存储的用户信息的AR模型Active Record 实现。后者是负责管理用户认证状态的 应用组件。

使用用户组件 yii\web\User

在 user 应用组件方面,你主要用到 yii\web\User 。

你可以使用表达式 Yii::$app->user->identity 检测当前用户身份。它返回 一个表示当前登录用户的认证类 yii\web\User::identityClass 的实例, 未认证用户(游客)则返回 null。下面的代码展示了如何从 yii\web\User 获取其他认证相关信息:

// 当前用户的身份实例。未认证用户则为 Null 。$identity = Yii::$app->user->identity;// 当前用户的ID。 未认证用户则为 Null 。$id = Yii::$app->user->id;// 判断当前用户是否是游客(未认证的)$isGuest = Yii::$app->user->isGuest;

你可以使用下面的代码登录用户:

// 使用指定用户名获取用户身份实例。// 请注意,如果需要的话您可能要检验密码$identity = User::findOne(['username' => $username]);// 登录用户Yii::$app->user->login($identity);

yii\web\User::login() 方法将当前用户的身份登记到 yii\web\User。如果 session 设置为 yii\web\User::enableSession,则使用 session 记录用户身份,用户的 认证状态将在整个会话中得以维持。如果开启自动登录 yii\web\User::enableAutoLogin 则基于 cookie 登录(如:记住登录状态),它将使用 cookie 保存用户身份,这样 只要 cookie 有效就可以恢复登录状态。

为了使用 cookie 登录,你需要在应用配置文件中将 yii\web\User::enableAutoLogin 设为 true。你还需要在 yii\web\User::login() 方法中 传递有效期(记住登录状态的时长)参数。

注销用户:

Yii::$app->user->logout();

请注意,启用 session 时注销用户才有意义。该方法将从内存和 session 中 同时清理用户认证状态。默认情况下,它还会注销所有的 用户会话数据。如果你希望保留这些会话数据,可以换成 Yii::$app->user->logout(false) 。

认证事件

yii\web\User 类在登录和注销流程引发一些事件。

  • yii\web\User::EVENT_BEFORE_LOGIN:在登录 yii\web\User::login() 时引发。 如果事件句柄将事件对象的 yii\web\UserEvent::isValid 属性设为 false, 登录流程将会被取消。
  • yii\web\User::EVENT_AFTER_LOGIN:登录成功后引发。
  • yii\web\User::EVENT_BEFORE_LOGOUT:注销 yii\web\User::logout() 前引发。 如果事件句柄将事件对象的 yii\web\UserEvent::isValid 属性设为 false, 注销流程将会被取消。
  • yii\web\User::EVENT_AFTER_LOGOUT:成功注销后引发。

你可以通过响应这些事件来实现一些类似登录统计、在线人数统计的功能。例如, 在登录后 yii\web\User::EVENT_AFTER_LOGIN 的处理程序,你可以将用户的登录时间和IP记录到 user 表中。

百度编辑器ueditor的toolbars的各个元素代表的功能说明

fullscreen    功能解释:全屏

source     功能:html源码

undo     功能:撤销

redo      功能:重做

bold     功能:加粗

italic    功能:斜体

underline    功能:下划线

fontborder    功能:字符边框

strikethrough    功能:删除线

superscript     功能:上标

subscript     功能:下标

removeformat       功能:清除格式

formatmatch     功能:格式刷

autotypeset      功能:自动排版

blockquote    功能:引用

pasteplain    功能:纯文本粘贴模式

forecolor    功能:字体颜色

backcolor     功能:背景色

insertorderedlist      功能:有序列表

insertunorderedlist   功能:无序列表

selectall     功能:全选

cleardoc     功能:清空文档

rowspacingtop    功能:段前距

rowspacingbottom     功能:段后距

lineheight     功能:行间距

customstyle    功能:自定义标题

paragraph   功能:段落格式

fontfamily   功能:字体

fontsize    功能:字号

directionalityltr     功能:从左向右输入

directionalityrtl     功能:从右向左输入

indent     功能:首行缩进

justifyleft      功能:居左对齐

justifycenter      功能:居中对齐

justifyright     功能:居右对齐

justifyjustify     功能:两端对齐

touppercase    功能:字母大写

tolowercase    功能:字母小写

link 功能:超链接

unlink     功能:取消链接

anchor     功能:锚点

imagenone    功能:默认

imageleft    功能:左浮动

imageright     功能:右浮动

imagecenter     功能:居中

simpleupload    功能:为选择文件【单个图片上传】

insertimage    功能:多图上传

emotion    功能:表情

scrawl     功能:涂鸦

insertvideo   功能:视频

music     功能:音乐

attachment    功能:附件

map   功能:百度地图

gmap    功能:谷歌地图

insertframe    功能:插入iframe

insertcode    功能:代码语言

webapp 功能:百度应用

pagebreak      功能:分页

template    功能:模板

background    功能:背景

horizontal   功能:分隔线

date   功能:日期

time   功能:时间

spechars    功能:特殊字符

snapscreen   功能:截图

wordimage   功能:图片转存

inserttable    功能:插入表格

deletetable  功能:删除表格

insertparagraphbeforetable    功能:表格前插入行

insertrow    功能:前插入行

deleterow    功能:删除行

insertcol    功能:前插入列

deletecol    功能:删除列

mergecells   功能:合并多个单元格

mergeright    功能:右合并单元格

mergedown    功能:下合并单元格

splittocells    功能:完全拆分单元格

splittorows    功能:拆分成行

splittocols  功能:拆分成列

charts    功能:图表

print     功能:打印

preview    功能:预览

searchreplace    功能:查询替换

help    功能:帮助

drafts   功能:从草稿箱加载

Yii2-页面缓存

页面缓存指的是在服务器端缓存整个页面的内容。随后当同一个页面被请求时,内容将从缓存中取出,而不是重新生成。

页面缓存由 [[yii\filters\PageCache]] 类提供支持,该类是一个过滤器。它可以像这样在控制器类中使用:

public function behaviors()
{
    return [
        [
            'class' => 'yii\filters\PageCache',
            'only' => ['index'],
            'duration' => 60,
            'variations' => [
                \Yii::$app->language,
            ],
            'dependency' => [
                'class' => 'yii\caching\DbDependency',
                'sql' => 'SELECT COUNT(*) FROM post',
            ],
        ],
    ];
}

上述代码表示页面缓存只在 index 操作时启用,页面内容最多被缓存 60 秒,会随着当前应用的语言更改而变化。如果文章总数发生变化则缓存的页面会失效。

如你所见,页面缓存和片段缓存极其相似。它们都支持 durationdependenciesvariationsenabled 配置选项。它们的主要区别是页面缓存是由过滤器实现,而片段缓存则是一个小部件。

你可以在使用页面缓存的同时,使用片段缓存和动态内容。

yii2.0 引入Ueditor

1、在入口文件【index.php】目录下新建public目录和uploads目录,下载ueditor,解压到public目录下;
2、在ueditor/php/config.json中自定义上传目录;将编辑器上传目录指定到/uploads/ueditor;

如"imagePathFormat": "/uploads/ueditor/image/{yyyy}{mm}{dd}/{time}{rand:6}",   "scrawlPathFormat": "/uploads/ueditor/image/{yyyy}{mm}{dd}/{time}{rand:6}"

3、在视图中引入ueditor相关js文件,指定要渲染的textarea;

<?phpuse yii\helpers\Html;use yii\bootstrap\ActiveForm;//引入百度编辑器$this->registerJsFile('@web/public/ueditor/ueditor.config.js');//注册自定义js$this->registerJsFile('@web/public/ueditor/ueditor.all.min.js');$this->registerJsFile('@web/public/ueditor/lang/zh-cn/zh-cn.js');?><script>
 $(function(){ 	var ue = UE.getEditor('editor');
 })</script><style>
	.inline .radio,.inline .checkbox{display: inline-block;margin: 0 5px;}
	#editor{margin-top: 20px;padding:0;margin:20px 0;width:100%;height:auto;border: none;}
	</style><?php $form=ActiveForm::begin([		'id'=>'upload',		'enableAjaxValidation' => false,		'options'=>['enctype'=>'multipart/form-data']
	]);?>
	<?= $form->field($model,'title')->textInput();?>
	<?= $form->field($model, 'image')->fileInput();?>
	<?= $form->field($model,'content')->textarea(['rows'=>6,'id'=>'editor','class'=>'col-sm-1 col-md-12']);?>
	<?=  Html::submitButton('提交', ['class'=>'btn btn-primary','name' =>'submit-button']) ?><?php ActiveForm::end();?>4、大功告成,可以开始测试编辑器功能了,编辑器样式按需求设置即可>

yii2 邮件发送

1.在配置文件main-local.php components=>[]里面配置

'mailer' => [  
   'class' => 'yii\swiftmailer\Mailer',  
    'useFileTransport' =>false,//这句一定有,false发送邮件,true只是生成邮件在runtime文件夹下,不发邮件
   'transport' => [  
       'class' => 'Swift_SmtpTransport',  
       'host' => 'smtp.163.com',  //每种邮箱的host配置不一样
       'username' => '15618380091@163.com',  
       'password' => '*******',  
       'port' => '25',  
       'encryption' => 'tls',  
                           
                   ],   
   'messageConfig'=>[  
       'charset'=>'UTF-8',  
       'from'=>['15618380091@163.com'=>'admin']  
       ],  
],
  1. controller控制器中 代码:
<?php$mail= Yii::$app->mailer->compose();   
$mail->setTo('***********@qq.com');  
$mail->setSubject("邮件测试");  
//$mail->setTextBody('zheshisha ');   //发布纯文字文本$mail->setHtmlBody("<br>问我我我我我");    //发布可以带html标签的文本if($mail->send())  
    echo "success";  
else  
    echo "failse";   
die(); 
?>

ok,这样就可以发送邮件了

如需加载模板 把$mail= Yii::$app->mailer->compose(); 
修改成 $mail= Yii::$app->mailer->compose('xiaoma',['aa'=>222]);
注:aa是想xiaoma.php里面传递的参数。
输入图像描述

邮件模板 xiaoma.php里面的代码 :

<?php  
use yii\helpers\Html;  
  
/* @var $this yii\web\View */  
/* @var $user common\models\User */  
  
$resetLink = Yii::$app->urlManager->createAbsoluteUrl(['site/reset-password', 'token' => $aa]);  
?>  
  
  
< a href="#" ><?php echo $resetLink ?></a>

加载模板的邮件代码:

$mail= Yii::$app->mailer->compose('xiaoma',['aa'=>222]);  
       $mail->setTo('1401619705@qq.com');  
       $mail->setSubject("邮件测试");  
       $mail->setTextBody('zheshisha ');  
       if($mail->send())  
           echo "success";  
       else  
           echo "failse";   
     die();

希望对你们有帮助!
更多yii2知识整理:http://happymc.iteye.com/

yii2数据缓存示例

首先配置一下缓存,自己选择是用文件缓存还是数据库缓存等。

'cache'   => [ 
    'class' => 'yii\caching\FileCache',
        ],

然后就可以通过 Yii::$app->cache->set()Yii::$app->cache->get() 设置、获取缓存内容了。
下面是一个带缓存依赖的实例:

//表达式依赖
$dp = new ExpressionDependency([
                        'expression' => 'count(Yii::$app->authManager->getPermissionsByUser(Yii::$app->user->id))'
            ]);
//数据库依赖(sql)  
$dp2 = new DbDependency([
            'sql' => 'select max(updated_at) from auth_item',
            ]);
//链式依赖(把以上2个依赖串起来,任何一个发生变化都会使缓存失效)  
Yii::$app->cache->set($key, $value, 0, new ChainedDependency([
            'dependencies' => [$dp, $dp2]
            ]));