程序员架构修炼:架构设计概要、业务、应用、技术、数据架构

2020-12-22
阅读 4 分钟
19.8k
架构设计是从业务需求到系统实现的一个转换,是对需求进一步深入分析的过程,用于确定系统中实体与实体的关系,以及实体的形式与功能。架构可根据从业务需求到系统实现的不同需要分为:业务架构、应用架构、数据架构、技术架构。下面以电商系统为例进行架构设计。

PHP程序员如何转Java开发?

2020-03-05
阅读 3 分钟
13.5k
作为一名有四年开发经验的PHP程序员,对Java强大的生态无比艳羡,尤其在开发一些比较大型的项目时,Java强大成熟的生态可以帮助我们快速完成开发,这是PHP比不了的,而且,最最重要的一点是,Java的薪资普遍比PHP的要高一大截,大厂对高级Java的需求量很大,所以,为了牛奶和面包,我们程序员不要自我设限,多学一门语言...

Ubuntu14.04源码编译安装php7.0和mysql5.6

2019-11-29
阅读 27 分钟
3.6k
在阿里云Ubuntu14.04找不到php7版本的apt安装包,所以,只能利用源码来安装,中间遇到不少坑,在和mysql、Nginx配置时又出现了问题,所以,这里记录下来。

长连接、短连接、长轮询、短轮询、WebSocket释疑

2019-09-19
阅读 2 分钟
16.6k
看到一篇不错的文章,特意转载过来,原文地址:长连接、短连接、长轮询、短轮询、WebSocket 一、短连接和长连接 短连接:每次Http请求都会建立Tcp连接,管理容易 长连接:只需要建立一次Tcp连接,以后Http请求重复使用同一个Tcp连接,管理难 HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久...

Ubuntu下安装SVN版本控制服务

2019-09-02
阅读 3 分钟
5k
今天在Ubuntu环境下部署svn版本控制服务。 一、下载安装 {代码...} 二、创建目录 {代码...} 三、创建仓库 {代码...} 查看 repository 目录: {代码...} 四、修改配置文件 进入配置文件: {代码...} 1、修改svnserve.conf {代码...} 将以下参数去掉注释: {代码...} 2、修改passwd文件 {代码...} 添加用户名和密码,例如 ...

Swoole学习之异步redis(八)

2019-09-01
阅读 3 分钟
4.4k
一、异步redis服务安装 Swoole官方文档入门指引->快速起步->异步Redis客户端 1、swoole使用异步redis前置条件 redis服务 hiredis库(X) 编译swoole需要加入--enable-async-redis(X) 注意:如果您的 swoole版本为4.3以上,则只需要安装redis服务即可,hiredis库和重新编译swoole都不需要在做了,因为4.3以上版本...

Swoole学习之毫秒定时器(七)

2019-08-31
阅读 3 分钟
2.5k
我们一般处理比较常规的定时任务都会用 Linux 系统自带的定时器 crontab 来执行,但是有时候会满足不了我们的业务需求,达不到毫秒级别,不过Swoole可以帮我们实现。

Swoole学习之Swoole Task任务(六)

2019-08-31
阅读 4 分钟
3.8k
在Server程序中如果需要执行很耗时的操作,比如一个聊天服务器发送广播,Web服务器中发送邮件。如果直接去执行这些函数就会阻塞当前进程,导致服务器响应变慢。

Swoole学习之网络通信引擎WebSocket服务(五)

2019-08-30
阅读 3 分钟
2.7k
WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信-允许服务器主动发信息给客户端。

Swoole学习之网络通信引擎Web服务(四)

2019-08-29
阅读 2 分钟
2.3k
Http服务器只需要关注请求响应即可,所以只需要监听一个onRequest事件。当有新的Http请求进入就会触发此事件。事件回调函数有2个参数,一个是$request对象,包含了请求的相关信息,如GET/POST请求的数据。

Swoole学习之网络通信引擎TCP与UDP(三)

2019-08-28
阅读 4 分钟
3.3k
一、TCP服务 TCP服务端 我们看Swoole官方文档入门指引->快速起步->创建TCP服务器,把文档的示例代码跑一次,看下效果: server.php {代码...} 我们先开启服务,然后再通过 telnet 命令分别开启两个窗口连接该服务 {代码...} 0号客户端: {代码...} 1号客户端: {代码...} TCP客户端 tcp_client.php {代码...} 执行...

Swoole学习之Swoole源码安装(二)

2019-08-28
阅读 6 分钟
2.6k
swoole和php的源码安装基本一样,但是 swoole 没有 configure 安装文件,这就需要我们使用PHP自带的工具 phpize(phpize用来添加扩展模块的,可以建立PHP的外挂模块) 来生成这样的文件。

Swoole学习之PHP源码安装(一)

2019-08-27
阅读 4 分钟
2.4k
在学习Swoole之前,我们先从源码安装PHP,Swoole,这里介绍两种环境安装方法,第一种是在Mac系统中直接安装的,第二种方法是通过Docker安装Ubuntu镜像,然后在容器里边进行php源码安装。

Windows下PHP服务nginx不能使用file_get_contents的原因

2018-09-04
阅读 3 分钟
3.5k
在Windows环境下搭建了一个本地开发服务环境,使用Nginx做服务,但是在使用file_get_contents()获取本地的链接时http://127.0.0.1/index.php,出现了这样的错误:

php中文乱码处理方法

2018-09-04
阅读 1 分钟
10.8k
昨天写了一个很简单的php输出中文页面,但是出现了乱码问题,第一反应可能是脚本文件的编码格式有问题,看了下,没有问题,原文件编码为utf-8,那是什么原因呢?

Laravel5.5 综合使用

2018-08-11
阅读 5 分钟
2.9k
使用 Laravel5.5 开发一个自动交割的项目,把使用到的开源扩展包及特性整理起来,以供后续使用。 一、安装IDE提示工具 Laravel IDE Helper 是一个极其好用的代码提示及补全工具,可以给编写代码带来极大的便利。 1、安装 {代码...} 安装 doctrine/dbal 「请装上它,在为模型注释字段的时候必须用到它」 {代码...} 详细安...

Laravel5.5执行表迁移命令出现表为空的解决方案

2018-07-06
阅读 6 分钟
4.7k
今天在使用一个第三方包 laravel-admin 时,出现了这样的错误:SQLSTATE[42000]: Syntax error or access violation: 1103 Incorrect table name '',折腾了好久,终于知道了解决方法,原来是配置文件的缓存没有清理。

Nginx和PHP的配置

2018-04-26
阅读 9 分钟
57.6k
采用nginx+php作为webserver的架构模式,在现如今运用相当广泛。然而第一步需要实现的是如何让nginx正确的调用php。由于nginx调用php并不是如同调用一个静态文件那么直接简单,是需要动态执行php脚本。所以涉及到了对nginx.conf文件的配置。这一步对新手而言一般需要网上查资料,对于一般的熟手而言,也有不少同学并没有...

PHP 开发版本问题处理

2018-03-15
阅读 2 分钟
3.8k
在安装一个开源项目时,作者本地用了 PHP 7.1 进行开发,而我本地是 PHP 7.0, 于是悲剧发生了,出现了这样的错误:requires php ^7.1 -> your PHP version (7.0.13) does not satisfy that requirement..

PHP上传CSV文件并读取入库

2017-12-14
阅读 25 分钟
8.7k
今天需要处理CSV文件上传到服务器,并读取CSV文件内容,保存到库中。 一、文件上传页面 upload.html {代码...} 二、文件处理页面 file_handle.php {代码...} 三、使用ajax异步上传 这里我们使用 ajax 异步上传插件 ajaxupload.js,来进行异步上传。 ajaxupload.js {代码...} 使用 ajaxupload.js 插件:upload.html {代码...

在Windows下为PHP安装redis扩展

2017-10-26
阅读 1 分钟
19.5k
选择php_redis-2.2.5-5.6-ts-vc11-x86.zip和php_igbinary-1.2.1-5.6-ts-vc11-x86.zip下载地址:

负载均衡中使用Redis实现共享Session

2017-10-15
阅读 7 分钟
28.4k
最近在研究Web架构方面的知识,包括数据库读写分离,Redis缓存和队列,集群,以及负载均衡(LVS),今天就来先学习下我在负载均衡中遇到的问题,那就是session共享的问题。

PHP单元测试框架PHPUnit的使用

2017-10-11
阅读 5 分钟
26.7k
在这篇文章中,我们使用 composer 的依赖包管理工具进行phpunit包安装和管理,composer 官方地址 [链接],按照提示进行全局安装即可,另外,我们也会使用一个非常好用的Monolog记录日志组件记录日志,方便我们查看。

PHP 怎样在同一个域名下两个不同的项目做独立的登录机制?

2017-09-22
阅读 2 分钟
4.5k
目前有这样一个需求,在一个域名下 如:[链接] 下,有两个项目,example.com/a/,example.com/b/,这两个项目是相互独立的程序,有不同的会员登录机制,但是我们知道,在同一个域名下,它的 session 会话是共享的,也就是你在a站登录后,b站也会出现你在a站的session信息,因为默认的 session_id 名字是 PHPSESSID,即当...

PHP执行耗时脚本实时输出内容

2017-09-07
阅读 1 分钟
7.4k
我们有时候会有这样一个需求,当执行耗时脚本时,会执行完这个脚本才会输出数据,如果没有处理完,它会将输出到页面的内容缓存到内存中,等处理完后才执行,这里,我们需要实时输出。

(转)php cli命令 自定义参数传递

2017-08-31
阅读 3 分钟
3.9k
所有的PHP发行版,不论是编译自源代码的版本还是预创建的版本,都在默认情况下带有一个PHP可执行文件。这个可执行文件可以被用来运行命令行的PHP程序。要在你的系统上找到这个可执行文件,就要遵照下面的步骤:

单点登录实现原理及小结

2017-08-05
阅读 2 分钟
11.6k
在工作中,有这样一个需求,因为公司有多个管理平台,每次登录一个平台都需要输入账号和密码进行登录,特别麻烦,所以,希望只需登录一个平台的账号和密码,其他平台的不用输入账号和密码也可以自动登录,即单点登录,经过两周的研究和实践,终于完成了该需求,目前公司的两个管理平台已经实现了单点登录,现将两周的研...

PHP 的异常处理之try和catch用法小结

2017-08-04
阅读 1 分钟
8.4k
php 也有自己的异常处理方法,虽然比不上Java的强大,但是简单的还是很容易处理的。 {代码...} 在数据库中使用事物时,用该方法非常方便: {代码...} 函数封装处理: {代码...}

处理服务器You don't have permission to access的问题

2017-08-02
阅读 1 分钟
3.1k
Edit httpd.conf file, which is in /etc/httpd/conf/httpd.conf. Add the below code.

HTTP_HOST 和 SERVER_NAME 的区别

2017-08-02
阅读 2 分钟
8.7k
PHP的SERVER保留变量中 HTTP_HOST 和 SERVER_NAME 经常是一样的,原因是服务器端口是80,那么HTTP_HOST将省略不显示,而HTTP服务的默认端口就是80,所以大多数情况下,HTTP_HOST都没有显示这个端口号。而如果使用的是ssl链接,那么端口号将被显示出来。