PHP
文章平均质量分 57
hjxisking
这个作者很懒,什么都没留下…
展开
-
ULID 一种比UUID更好的方案
ULID 一种比UUID更好的方案转载 2022-12-09 17:44:10 · 221 阅读 · 0 评论 -
用自增ID生成另一个长串数字的方法
实际应用场景中经常会遇到用什么方式来生成userId,常用的方式是直接使用Mysql的自增主键作为userId,优点是简单方便,插入时无须考虑userId重复的问题,缺点是位数不一致,如果userId还需要暴露给用户或者第三方,容易让他人估计出用户总数量,同时伪造userId也变得更方便。所以需要一个更好的方式来产生userId来代替自增主键。以下算法可以通过一个数字产生另一个位数相对固定的数字,同时还是可逆的。$seeds = [ '7893401256'...原创 2022-02-09 11:43:35 · 772 阅读 · 0 评论 -
PHP从已有安装包(vendor)恢复 composer.json
拿到的一个项目没有 composer.json,不过 /vendor 目录下是完整存在的。对此我们进行恢复。提供两个方式,都需要通过/vendor/composer/installed.json进行恢复。如果不存在则只能手动将所存在的项目逐个取出及对应版本号收集整理。事实上,项目还不是使用默认的vendor目录,而是pkgs,所以可以通过环境变量来指定替代的vendor目录 COMPOSER_VENDOR_DIR=pkgs其一,将上述文件内容所有的包名称及版本号提取出来标准规范写到 compos..转载 2021-08-26 10:54:46 · 1350 阅读 · 1 评论 -
PHP面试经常被问到的知识点汇总
这些是 PHP 面试经常被问到的知识点做汇总。仅是针对性指出知识点,相应的还需自己查找相关资料系统学习。我希望各位能不仅仅了解是什么,还要了解为什么,以及背后的原理。如果你现在处于以下几种状态,本资料非常适合你:准备换工作,不知道从哪开始准备 技术遇到瓶颈,不知道该学什么 准备学 PHP,但不知道领域有多深基础篇了解大部分数组处理函数 字符串处理函数 区别 mb_ 系列函数 & 引用,结合案例分析 == 与 === 区别 isset 与 empty 区别 全部魔术函数理解转载 2021-05-18 14:14:20 · 261 阅读 · 0 评论 -
phpStorm使用xdebug远程调试linux代码
1. 安装xdebug扩展,可使用yum install php-pecl-xdebug注意不同版本的php可能包的名字略有不同,比如使用 rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm 这个源安装php5.6时为php56w-pecl-xdebug2. 配置xdebug[root@localhost ~]# vim /etc/php.d/xdebug.ini ; Enable xdebug extensi.原创 2021-04-02 17:09:15 · 268 阅读 · 0 评论 -
Linux开启SELinux的情况下怎么解决nginx403跟502错误以及打开非http端口
先说下SElinux是什么,其实我也看不太懂,不过我了解了一点规则先说下两个命令跟参数ps -Z ls -Z 注意Z参数可以显示出SElinux的信息如下图红圈,第一个是进程的SElinux信息,第二个是文件的SElinux,system_u是用户,object_r是用色,http_t是类型,这个类型比较重要,其它的好像没啥影响就直接点说nginx来说,这个进程只能访问httpd_sys_content_t类型的文件,所以如果出现403的话,就是你的www目录的类型不对,所以得把www目转载 2020-05-14 11:21:46 · 533 阅读 · 0 评论 -
swagger生成php接口文档
1. 安装前端git clone https://github.com/swagger-api/swagger-ui.gitswagger-ui下载下载之后找到dist目录, 打开index.html把其中的那一串url改成自己的, 比如http://localhost/yii2/swagger-docs/swagger.json然后打开URL就可以看到前端界面了, 应该是没内容...转载 2020-04-07 13:45:57 · 1156 阅读 · 0 评论 -
windows下的php扩展包
地址:https://windows.php.net/downloads/pecl/releases原创 2020-04-02 19:24:39 · 249 阅读 · 0 评论 -
深入学习 Composer 自动加载(autoload)机制
众所周知composer是现代 PHP 项目的基石, 与古老的pear不同,composer并不是一款专注于系统级别 php 管理的包管理系统,而是基于项目的一个库管理系统。这就好比npm install -g和npm install的区别。而且最主要的是pear不太能跟上时代的潮流,在大家都在用psr-*的时候pear依然我行我素自成一体。 好吧,可能这是好事,但...转载 2020-04-01 11:45:35 · 630 阅读 · 0 评论 -
win10下WSL安装php环境遇到的问题
1. php-fpm建议使用sock文件的模式,因为php-fpm的log里会报ERROR: failed to retrieve TCP_INFO for socket: Protocol not available,这个是WSL的问题(貌似高版本修复了这个问题,没确认过)2. WSL下使用sock文件的方式访问会一直超时,需要在 /etc/nginx/nginx.conf 的 http ...原创 2020-01-19 22:22:26 · 1944 阅读 · 0 评论 -
设计模式六大原则(PHP)
设计模式的目的是为了更好的代码重用性,可读性,可靠性和可维护性。常用的六大设计模式有:单一职责原则(SRP),里氏替换原则(LSP),依赖倒转原则(DIP),接口隔离原则(ISP),迪米特法则(LOD),开闭原则(OCP)。1.单一职责原则(Single Responsibility Principle)该原则是针对类来说的,即一个类应该只负责一项职责。假设有一个部门的类叫做T,...转载 2019-12-05 14:26:32 · 102 阅读 · 0 评论 -
PHP之Trait详解
php从以前到现在一直都是单继承的语言,无法同时从两个基类中继承属性和方法,为了解决这个问题,php出了Trait这个特性用法:通过在类中使用use 关键字,声明要组合的Trait名称,具体的Trait的声明使用Trait关键词,Trait不能实例化如下代码实例:<?phptrait Dog{ public $name="dog"; public f...转载 2019-12-05 13:48:18 · 106 阅读 · 0 评论 -
PHP开发者应了解的24个库
1. Dispatch – 微框架Dispatch是一个PHP小框架。它并没有给你完整的MVC设置,但你可以定义URL规则和方法,以便更好组织应用程序。这对API、简单的站点或原型来说是完美的。12345678910111213141516转载 2015-09-01 09:56:41 · 783 阅读 · 0 评论 -
linux下编译php的amqp扩展(for rabbimq)
参考文档:http://docs.php.net/manual/da/amqp.installation.php原创 2014-10-28 10:38:51 · 589 阅读 · 0 评论 -
Monolog:PHP 日志记录工具
Monolog:PHP 日志记录工具0Monolog是php下比较全又容易扩展的记录日志组件。目前有包括Symfony 、Laravel、 CakePHP等诸多知名php框架都内置了Monolog。Monolog可以把你的日志发送到文件,sockets,收件箱,数据库和各种web服务器上。一些特殊的组件可以给你带来特殊的日志策略。使用例子转载 2014-05-04 15:07:30 · 582 阅读 · 0 评论 -
容易被忽视的一些PHP问题
1. in_array 的弱类型匹配$arr = array( 'a' => 'a', 'b' => 0,);var_dump(in_array('abc', $arr));这个代码返回的是TRUE,因为字符串abc在匹配数字0的时候,首先会被转换成int类型,所以'abc'就成了0,所以返回结果是TRUE原创 2014-01-10 19:33:51 · 449 阅读 · 0 评论 -
超大文件下载类 支持2g以上文件 支持断点续传
<?php/** * 文件传输,支持断点续传。 * 2g以上超大文件也有效 * @author MoXie */class Transfer { /** * 缓冲单元 */ const BUFF_SIZE = 5120; // 1024 * 5 /** * 文件地址 * @var */ private转载 2013-11-21 10:24:48 · 1314 阅读 · 0 评论