Write the Code. Change the World.

11月 22

前言

使用 laravel 框架,总会使用到其模板引擎 blade。 该引擎的最大优点就是继承和切片。

一个网站通常首部(header),底部(footer)都是一样的。如果每个页面,都通过复制粘贴来实现共通性,就会很累赘。

相同代码的复用,在其他框架中也会有。而blade使用的是继承以及include。
继续阅读

11月 21

初入

  1. Contracts(契约),也就是接口。定义一些方法,所以实现此接口的类都要实现契约里边的方法。
  2. ServiceContainer (契约的具体实现) ,实现 Contracts。具体实现逻辑写在这里。

  3. ServiceProvider (服务提供者) ,绑定事务到服务容器。

  4. App (服务容器), 在服务提供者中,可以通过 $this->appApp:: 得到。 App::其实就是门面。

  5. Facades(门面), 简化服务提供者的调用方式,用静态的方式调用具体实现里的方法。

具体

通过依赖注入,反射,实现了服务的功能。契约定义好服务所需要的接口,当然也可以不需要这个。当类似抽象功能多的时候,还是实现的好。然后,定义契约的实现。在服务提供者中,将服务绑定到容器。最后,在 config\app.php 中的providers,加入服务提供者。如果想使用门面,创建一个门面,然后在门面中重写getFacadeAccessor。最后,也是要在 config\app.php中的aliases加入门面。
继续阅读

11月 15

我们除了使用 phpmyadmin 管理mysql数据库,还会用到 navicat等。但,就是连接不上,提示 Host xxx.xxx.xxx.xxxis not allowed to connect to this MariaDB server。这个是没有权限啊。

原来,刚装的mysql,由于执行安全初始化脚本(mysql_secure_installation)的时候,禁用root用户远程登录设置为true了。所以,下边有两种方法来解决这个问题。

  1. 改表法。
  2. 授权法。

以下操作,在linux下进行。
继续阅读

11月 11

场景

数据存储在mysql数据库中。在一个离散的一段时间内(开始时间到结束时间),求出每隔一个小时,用户消费的金币。

这时,就需要将这一段时间以小时来分割了,然后groupby。

该怎么做呢。

实现

时间通常是 datetimetimestamp 。通过 DATE_FORMAT,我们可以对时间进行分段。

比如:

%H 0-23小时
%S 00-59秒

所以可以这样:

select sum(coin), DATE_FORMAT(log_time, "%H") as h from gift_tb where log_time >= '2017-11-10 00:00:01' group by h

看起来是可以了。可是如果时间总长度大于1天呢。或是我需要30分钟来分割,10分钟来分割。这样显然是不行的。

好吧,路总是要人走的。

计算的根本还是时间,那不如将时间稍微处理下。

公式: floor( (记录时间 - 时间段的开始时间)/ (60 * 60) ) as h

于是就有了:

select sum(coin), floor((UNIX_TIMESTAMP(log_time) - 1510243200)/(60 * 60)) as h from gift_tb where log_time >= '2017-11-10 00:00:01' group by h

参考

http://www.w3school.com.cn/sql/func_date_format.asp

http://blog.csdn.net/zhuyu_deng/article/details/43409547

11月 09

拥有自己的服务器,这个时候从本地上传文件到服务器或从服务器下载文件到本地就很必要了。你可以用ftp工具,但这样有的时候不方便。因为对服务器的使用和操作都是在shell下进行。通常我们通过xshell去操控自己的服务器。rz,sz工具就是一个很好的工具。通过命令rz上传文件到服务器,sz下载服务器文件到本地。秒秒钟,在命令里搞定。

安装rzsz

yum install -y lrzsz

使用

上传。输入命令rz,就会弹出选择窗口。选择所要上传的文件。多文件通常以.zip的方式上传,方便解压。

rz

下载。进入到对应目录,sz 文件名,也会弹出选择窗口,选择适当的位置,确定,就可以了。

cd xxx
sz xxxxx

记住,该命令仅在 xshell等这样的工具下才可以。

11月 06

  1. 下载 igbinary
    http://windows.php.net/downloads/pecl/releases/igbinary/1.2.1/
    根据服务器选择合适的版本。如果是iis,选择 Non Thread Safe (NTS)。

  2. 下载 redis
    http://pecl.php.net/package/redis/2.2.7/windows

  3. 上边两步下载的包,解压,将dll文件复制的php的ext目录下。在php.ini中开启php-redis,如下。

;php_redis
extension=php_igbinary.dll

extension=php_redis.dll

php 5.6下载

http://windows.php.net/download/

参考

http://www.cnblogs.com/myright/articles/5408276.html

11月 06

方法一

使用 composer 根据需要安装具体版本的laravel

// php 5.6.4以下版本最高安装laravel5.2
composer create-project --prefer-dist laravel/laravel blog "5.2.*"

blog 为项目名,文件都被安装在blog目录下

如果安装完成后,发现没有安装vendor。请不要担心,请将 php.ini 里面的mbstring extension=php_mbstring.dll 打开。

方法二

  1. 下载laravel安装包。
composer global require "laravel/installer=~1.1"
  1. ~/.composer/vendor/bin 路径添加到系统环境变量中, 这样 laravel 执行文件就会存在你的系统。

  2. 创建项目。

// XXX 为项目名
laravel new XXX

参考:https://docs.golaravel.com/docs/5.2/installation/

11月 06

mac或linux下安装composer很方便。在win下稍微麻烦一点。想要使用composer,还是得去安装。

  1. 下载 Composer-Setup.exe,然后安装。安装的时候,会提示选择 php.exe 的位置,选择好即可。然后一步一步的安装。

  2. php 目录下,打开 php.ini 文件,开启openssl扩展。去掉 extension=php_openssl.dll 前面的分号;

  3. 设置环境变量,将php目录添加到系统环境变量中。计算机->属性->更改设置->高级->环境变量->系统变量->Path->编辑

  4. 下载 composer.phar,将其放到 php 目录下。然后,在php目录下新建一个文件 composer.cmd,内容写成:**@php "%~dp0composer.phar" %* ** 保存。运行这个文件,然后打开cmd运行:composer。

  5. 设置全局镜像。

composer config -g repo.packagist composer https://packagist.phpcomposer.com

// 或

composer config -g repo.packagist composer https://packagist.laravel-china.org

镜像介绍

https://pkg.phpcomposer.com/

https://laravel-china.org/composer

11月 06

现象

android手机打开html网页,点击按钮时,down 状态会出现阴影。

处理

给这些按钮加一个样式即可。如下:

.no-shadow{
    -webkit-tap-highlight-color: rgba(0,0,0,0);
    -webkit-tap-highlight-color: transparent;
}