zgJian's Note


  • Home

  • Archives

  • Tags

PHP生成器-yield关键字

Posted on 2017-01-21 | In PHP , 编程模式 , |

生成器提供了一种更容易的方法来实现简单的对象迭代,相比较定义类实现 Iterator 接口的方式,性能开销和复杂性大大降低。

Read more »

uHTTPd详解

Posted on 2017-01-15 | In web服务器 |

uHTTPd

uHTTPd 是一个 OpenWrt/LUCI 开发者从头编写的 Web 服务器。 它着力于实现一个稳定高效的服务器,能够满足嵌入式设备的轻量级任务需求,且能够与 OpenWrt 的配置框架 (UCI) 整合。默认情况下它被用于 OpenWrt 的 Web 管理接口 LuCI。当然,uHTTPd 也能提供一个常规 Web 服务器所需要的所有功能。

Read more »

WebBench剖析

Posted on 2017-01-13 | In web服务器 |

webbench.c: ```c /*

  • (C) Radim Kolar 1997-2004
  • This is free software, see GNU Public License version 2 for
  • details. *
  • Simple forking WWW Server benchmark: *
  • Usage:
  • webbench –help *
  • Return codes:
  • 0 - sucess
  • 1 - benchmark failed (server is not on-line)
  • 2 - bad param
  • 3 - internal error, fork failed * */ #include “socket.c” #include #include <rpc/types.h> #include #include #include <sys/param.h> #include #include
Read more »

异步阻塞IO和异步非阻塞IO对比

Posted on 2017-01-12 | In 网络编程 |

异步阻塞模式

  • 带有阻塞通知的非阻塞 I/O
  • 配置的是非阻塞 I/O,然后使用阻塞 select 系统调用来确定一个 I/O
Read more »

Socket的同步阻塞IO和IO多路复用对比

Posted on 2017-01-10 | In 网络编程 |

同步阻塞模式

在这个模式中,用户空间的应用程序执行一个系统调用,并阻塞,直到系统调用完成为止(数据传输完成或*发生错误)

Read more »

教室根据课程排位

Posted on 2016-12-27 | In 算法 |

这是segmentfault中的一个问题,尝试把算法写出来了。

Read more »

PHP异常处理注意项

Posted on 2016-12-18 | In PHP |

在实际开发中,错误及异常捕捉仅仅靠try{}catch()是远远不够的。 所以引用以下几中函数。

  1. set_error_handler 一般用于捕捉 E_NOTICE 、E_USER_ERROR、E_USER_WARNING、E_USER_NOTICE 不能捕捉: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR and E_COMPILE_WARNING。
  2. set_exception_handler 设置默认的异常处理程序,用于没有用 try/catch 块来捕获的异常。 在 exception_handler 调用后异常会中止。 与throw new Exception(‘Uncaught Exception occurred’),连用。
  3. register_shutdown_function 执行机制是:php把要调用的函数调入内存。当页面所有PHP语句都执行完成时,再调用此函数。 一般与trigger_error(“…”, E_USER_ERROR),配合使用。
Read more »

一个PHP算法面试题优化过程

Posted on 2016-12-02 | In PHP |
$listData = [
    '111' => ['a', 'b', 'c', 'a'],
    '222' => ['d', 'e', 'f', 'f', 'b'],
    '333' => ['g', 'h'],
    '444' => ['i', 'j'],
    ...
];

定义一个函数,传入$listData 如果111里面的元素,和 222/333/444… 里面的元素有重复,返回false 如果222里面的元素,和 111/333/444… 里面的元素有重复,返回false 如果333里面的元素,和 111/222/444… 里面的元素有重复,返回false 如果 … 允许 111/222/333/444 自己里面的元素重复,返回true 其他情况返回true

Read more »

ELK命令

Posted on 2016-11-28 | In 架构设计 |

简介

ELK由Elasticsearch、Logstash和Kibana三部分组件组成;

Read more »

Yii2架构探究

Posted on 2016-11-10 | In 开发框架 |

基于Yii2框架的架构分析图,整理了请求的生命周期以及主要功能模块的关系。

Yii2架构分析图

通过DI(依赖注入)载入各模块

重要模块说明:

  • 路由、请求模块
  • Module模块,将应用了多块模块,便于开发,管理
  • Controller解析Action参数,调度执行Action,根据结果渲染Views
  • Action,实现业务逻辑;主要关联模块就是数据库操作的Model
  • Model,AR模型,数据库封装
  • Views,模板引擎

服务说明:

  • 会话、Cookie
  • Exception、Logger
  • 认证授权
  • 缓存
  • 加密(TOKEN)
  • 国际化
  • 验证类
  • Restful
  • 邮箱
  • 任务调度
  • 队列
  • 等等。。。

其他:

  • Codeception测试框架
Read more »
1 2 3 4
Garvin Zhang

Garvin Zhang

GvZhang 的小站

35 posts
12 categories
49 tags
RSS
© 2019 Garvin Zhang
Powered by Jekyll
Theme - NexT.Muse