php 的 mcrypt_ 函数簇在 7.1.0 版本中开始 deprecated,并在 7.2.0 版本中彻底废弃。如果当前项目存在mcrypt_ encrypt这种函数又想更新php到最新版本官方推荐使用openssl_encrypt/openssl_decrypt替代mcrypt_encrypt和mcrypt_decryptMCRYPT_RIJNDAEL_256 并不是 AES-256,如果
symfony 的容器是有一个编译过程的,框架初始化的时候会执行Symfony\Component\HttpKernel\Kernel::initializationContainer ,这个方法会对代码进行检查,看是否需要生成新的容器代码。如果需要 Symfony 会将各个类的依赖关系通过编译生成静态的类并存储在缓存文件中var/cache/[ENV]/appProjectContai
延迟任务应用场景场景一:物联网系统经常会遇到向终端下发命令,如果命令一段时间没有应答,就需要设置成超时。场景二:订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单。实现方案定时任务轮询数据库,看是否有产生新任务,如果产生则消费任务pcntl_alarm为进程设置一个闹钟信号swoole的异步高精度定时器:swoole_time_tick(类似javascript的setInterval)
最近跟踪yii源码 里面涉及到了绑定事件行为之类,于是自己手写了一个最简单的事件绑定实现class EventHandle { private static $_map = array(); //类似jquery绑定事件 public function on($name, $callb
之前要研究aho-corasick算法 拖了好久 感觉自己博客要开始了!!aho-corasick算法依赖2元素:1.Trie树解析,1个月前就已经写过博客分析过了。2.KMP算法此文重点介绍字符串KMP算法:一开始说说普通模式算法("BF"算法)思路:模式串从主串的第一个字符开始匹配,每匹配失败,主串中记录匹配进度的指针 i 都要进行 i-j+1 的回退操作(这个
理论解释Trie树,当然是一种树形结构,树的节点(除了根节点)上都保存了一个字符,叶子节点会多一个标志,标志当前节点为叶子节点,我下面实现的方案是给结构体加了count属性,如果为叶子节点,count属性大于0。用处Trie树每个节点上保存了一个字符,常用来保存字符串,排序字符串,搜索字符串,下面代码实现就是搜索一个字符串在另外一个字符串的位置,如果没找到,则为-1,如果找到了,则返回了主字符串的
百度百科解释:回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。许多复杂的,规模较大的问题都可以使用回溯法,
最近在研究动态规划算法,刚好看到背包问题。看到网上讲解这方面问题很多,感觉都有点不明白,后面细思苦想好久,终于理解这个思路。于是写下个人见解以及解题思路。背包问题描述如下:有编号分别为a,b,c,d,e的五件物品,它们的重量分别是4,2,6,5,3,它们的价值分别是6,3,5,4,6,现在给你个承重为10的背包,如何让背包里装入的物品具有最大的价值总和?对于这题我们先不解题。先扯扯动态规划,下面描
读本篇文章,建议先看看我之前的文章php依赖注入到此,现在我们正式开始分析yii2框架组件构造流程我们先从yii\di\ServiceLocator(服务定位器)入手吧!!让我们先看个实例:use yii\di\ServiceLocator; use yii\caching\FileCache; $locator = new ServiceLoc
用yii2框架用了将近2年,一直都没有去看过它底层源码,马上快不用了,最近对其源码研究一番,哈哈废话少说,上代码,我这代码是我们大数据中心网站的实际代码,没有发布到线上,可能跟官方直接下载下来的框架有点不一样,但大致流程都是相同的。我们系统入口文件是appadmin/web/index.phprun();解释1-1直接上Yii.php文件源码解释1-2打开这个common/config/boots
现在很多主流框架都用到了composer,包管理实在是方便。现在我就以yii2来举例追踪一遍composer autoload流程第一步上yii2的web/index.php(入口文件)<?php defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII
在软件工程领域,依赖注入(Dependency Injection)是用于实现控制反转(Inversion of Control)的最常见的方式之一。本文主要介绍依赖注入原理和常见的实现方式,重点在于介绍这种年轻的设计模式的适用场景及优势。首先我们来一个实例,上代码<?php class A { public function test() { ech
由于看到框架里面经常使用static::method() 于是稍微了解下static和self的区别废话少说,直接上代码class Father { public function __construct() { $this->init(); self::test(); } public static function
先展示数据结构如下:{ "itemId": "132417862061", "site": "US", "sellerId": "aaaaa", "increamentId": "3753595",
环境:mongodb 3.2.17 logstash 6mongodb日志实例格式文件路径为/root/mongodb.log:2018-03-06T03:11:51.338+0800 I COMMAND [conn1978967] command top_fba.$cmd command: create
快速elk最新平台搭建
Dockerfile命令速查表FROM 命令FROM <p_w_picpath>:<tag>用于设置基础镜像,一般是Dockerfile的第一句。如果没有指定 tag ,则默认tag是latest。MAINTAINERMAINTAINER <name>用来指定维护者的姓名和联系方式。RUNRUN <command> 或 RUN ["executabl
概念镜像是容器的基础,每次执行 docker run 的时候都会指定哪个镜像作为容器运行的基础。在之前的例子中,我们所使用的都是来自于 Docker Hub 的镜像。直接使用这些镜像是可以满足一定的需求,而当这些镜像无法直接满足需求时,我们就需要定制这些镜像。镜像是多层存储,每一层是在前一层的基础上进行的修改;而容器同样也是多层存储,是在以镜像为基础层,在其基础上加一层作为容器运行时的存储层。do
docker基本概念镜像(Image)容器(Container)仓库(Repository)Docker镜像Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。Docker 容器镜像(Image)和容器(Container)的关系,就
由于docker部署gitlab比较方便,于是用docker部署gitlab,安装步骤如下:我拿的虚拟机做的测试,系统是centos 7.1,我ip是192.168.12.234.docker安装以及基础知识这里就不说了1. 下载gitlab镜像docker pull gitlab/gitlab-ce2. 运行gitlab实例mkdir -pv /data/
1.环境准备(以下是我虚拟机配置): 服务器一:192.168.227.145(RIP) 系统centos 6.5服务器二:192.168.227.146(RIP) 系统centos 6.5VIP:192.168.227.147以上内容VIP为虚拟IP,RIP为服务器真实IP,我们访问svn服务器是通过VIP去访问的2.搭建流程: 2.1 配置yum源在/etc/yum.rep
进程调度Linux进程调度的目标 1.高效性:高效意味着在相同的时间下要完成更多的任务。调度程序会被频繁的执行,所以调度程序要尽可能的高效; 2.加强交互性能:在系统相当的负载下,也要保证系统的响应时间; 3.保证公平和避免饥渴; 4.SMP调度:调度程序必须支持多处理系统; 5.软实时调度:系统必须有效的调用实时进程,但不保证一定满足其要求;多任务: &n
sedsed为文本处理三剑客之一.本身就是一个管道命令,可以将文件进行增加,修改,删除,选取等操作。格式:sed [-nrefi] [command] "文本字符串"选项: -r: 支持扩展正则表达式; -n: 静默模式;(sed有个模式空间和保持空间,默认sed会将执行的结果保存到模式空间里面,而模式空间
shell工作原理Linux系统提供给用户的最重要的系统程序是Shell命令语言解释程序。它不属于内核部分,而是在核心之外,以用户态方式运行。其基本功能是解释并执行用户打入的各种命令,实现用户与Linux核心的接口。系统初启后,核心为每个终端用户建立一个进程去执行Shell解释程序。它的执行过程基本上按如下步骤: (1)读取用户由键盘输入的命令行。 (2)分析命令,以命令名
rpm定义:包管理器rpm程序包的组成部分: 二进制程序:/bin, /sbin,/ /usr/bin, /usr/sbin, 库文件:/lib64, /usr/lib64 配置文件:/etc 帮助文件:manual
其实定时任务我们经常要用到,比如凌晨备份数据库,跑一些php脚本之类的都需要用到定时任务。下面我来分析下定时任务的两个命令:at说明:执行定时任务,只运行一次.并且依赖于atd服务运行选项: -q queue:将任务放到队列中去,不设置默认即为a队列 -l: 显示所有队列的任务。 相当于atq命令 
Linux文件系统上的特殊权限 进程的安全上下文: 前提:进程有属主(进程以哪个用户的身份运行);文件有属主和属组; (1) 用户是否能够把某个可执行程序文件启动为进
bash环境配置: 配置文件,生效范围划分,存在两类: 全局配置: /etc/profile, /etc/profil
find基础知识文件查找:在文件系统上查找符合条件的文件的过程;文件查找命令:locate, find locate: 非实时查找工具;依赖于事先构建的索引;索引的构建是在系统较为空闲时自动进行(周期性任务);手动更新此数据库(updatedb);查找速度快;模糊查找; find:实时查找;查找速度略慢;精
vim模式vim模式分为编辑模式(命令模式),输入模式,末行模式。模式互相切换: 输入模式 --> 编辑模式:ESC 编辑模式 --> 末行模式:: 末行模式 --> 编辑模式: ESC 编辑模式
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号