痕无落


  • 首页

  • 归档

  • 标签

我的第一个PHP扩展

发表于 2016-07-23

写php有一年了,说实话这门语言入门实在是太简单了,以至于我都不想说我会php(这年头谁学这个不是分分钟的事). 但是任何一门语言,都有着其独特的魅力,如果你还没有发现,只能说你还只是停留在这门语言浅显的使用上(不服不行)。

我觉得PHP的一个魅力之处便在于它的扩展性,如果你是c大牛, php中不存在想要的功能,完全可以基于c写一个php的扩展,引入到你的项目中,这感觉不要太好(^_^)。当然现在php的性能问题在php 7 中得到了极大的改善(我也只是道听途说的,😄)。

下面我将会一步步地讲解一个简单的php extension. 希望能起到抛砖引玉的作用(我其实就是怕自己下次忘记)。本文是基于PHP扩展开发与内核应用,感谢这些乐于分享的人。

我觉得程序世界伟大的地方在于有那么多伟大的人,是他们的开源精神,才造就了如今朝气蓬勃的代码世界。

阅读全文 »

让你的web应用更安全

发表于 2016-03-09

让你的web应用更安全

  • X-Frame-Options
  • Cookie of secure and httpOnly

设置X-Frame-Options

https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options

X-Frame-Options 主要是为了防止点击劫持(clickjacking)
点击劫持(clickjacking)是一种在网页中将恶意代码等隐藏在看似无害的内容(如按钮)之下,并诱使用户点击的手段。
X-Frame-Options HTTP 头部字段用来指示传输的资源是否可以被包含在 <frame> 或 <iframe> 中,服务端可以声明这个策略来确保自己的网页内容不会被嵌入到其他的页面中.
X-Frame-Options 具有3个具体的值:

  • DENY
    表明网页内容不可以被嵌入到任何frame中
  • SAMEORIGIN
    同源策略,声明网页内容可以被同一域下面的frame嵌入,但不能被不在同一域下面的frame嵌入.
    同源: 协议,域名和端口全部相同,即使是ip与域名对应,也认为是不同域下,
    下面说明了具体的情况,与:http://www.example.com/dir/page.html对比:
阅读全文 »

Sublime Text 3自定义插件

发表于 2016-03-06

http://docs.sublimetext.info/en/latest/extensibility/plugins.html
https://clarknikdelpowell.com/blog/creating-sublime-text-3-plugins-part-1/

Sublime Text 3 (ST3) 作为我工作之后的唯一编辑器, 已经彻底征服了我的心,它非凡的性能变现以及众多插件的扩展性,已经让我欲罢不能了.每一个独特功能的插件都加速了我的日常工作,这使我萌生了自定义插件的想法.

阅读全文 »

Yii2 请求工作流

发表于 2016-02-26

Yii2 请求处理工作流

  1. 用户的请求发送到入口脚本:
    web/index.php
  2. 入口脚本加载配置,创建应用实例
  3. request应用组件分析处理路由
  4. 创建controller实例
  5. 创建action实例
  6. 过滤器验证
  7. action 加载数据 model
  8. action 渲染 view
  9. response应用组件负责将渲染的结果发送到用户浏览器
阅读全文 »

linux shell

发表于 2016-02-03

变量

  • 首个字符必须为字母(a-z,A-Z)。
  • 中间不能有空格,可以使用下划线(_)。
  • 不能使用标点符号。
  • 不能使用bash里的关键字(可用help命令查看保留关键字)。
阅读全文 »

MongoDB 索引小结

发表于 2016-01-27

MongoDB Indexes

  • 默认 _id 会作为collection的索引
  • 对于单个字段的索引, 排序方向并不影响索引的使用
  • 嵌入文档的索引,必须要完全匹配
  • 对于复合索引,可以匹配任意带有前缀的查询
阅读全文 »

MongoDB中关于乐观锁的一些使用

发表于 2015-12-27

很多时候我们对一些数据的操作总是涉及到原子性一致性问题,这类问题往往是系统功能中很重要的环节,需要正确有效的处理.

我所使用的数据模型是存储在MongoDB中的, 当然乐观锁这种解决方案是与数据库无关的,重要的是思想本身.

阅读全文 »

Redis开启密码, 配置Yii2 redis密码访问

发表于 2015-12-18
1
2
3
4
5
6
7
8
9
10
sudo vi /etc/redis/redis.conf

#添加密码
requirepass abc123_

#重启redis-server
sudo service redis-server restart

#或者
sudo redis-server /etc/redis/redis.conf
阅读全文 »

PHP 魔法函数 __call

发表于 2015-12-17
  1. 调用一个类中的方法, 如果方法名不存在,就会抛异常,可以使用
    __call($method, $args) 来同意处理这种调用
  2. 另一种case就是如果一个类需要对外提供很多方法,而这些方法的实际
    处理中具有很强的一致性,那么没必要将这些方法全部写出,可以使用
    一种统一的逻辑来处理.
阅读全文 »

Yii2 手动添加扩展模块 mongodb

发表于 2015-11-06

Yii2手动添加扩展模块 mongodb, 非composer方式

因为某些原因, 国内composer方式难以成功, 你懂的 , 而Yii2 的官方推荐就是使用composer的方式安装第三法扩展

阅读全文 »
1234
wangming

wangming

做一个高产的程序员

37 日志
5 分类
28 标签
GitHub 微博
© 2015 - 2019 wangming
由 Hexo 强力驱动
主题 - NexT.Pisces