沙袋填坑

Life is short, Coding More!

  • 首页
  • PHP
  • LNMP
  • 互联网架构
  • 数据库
  • 网络安全
  • 前端
  • 扯扯淡

自己动手写PHP框架(三)

沙袋 发表于 2017-03-22  |  分类于 PHP  |  暂无评论

作者:Terry Gao

1. 控制器

第一篇我们聊到路由分发会把用户请求按照规则分发到控制器层的不同类,而默认的规则中,请求会下发到控制器的index类的main方法,我们可以在这个方法中处理用户请求,并将处理结果呈现给用户。来看看源码

阅读全文 »

自己动手写PHP框架(二)

沙袋 发表于 2017-03-20  |  分类于 PHP  |  暂无评论

作者:Terry Gao

上一篇提到了类的自动加载和Session,今天就来逐一说说。

1. 类的自动加载

在使用PHP的OO模式开发系统时,通常大家习惯将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利,这也是OO设计的基本思想之一。如果需要使用一个类,只需要直接使用include/require将其包含进来即可。但随着项目规模的不断扩大,使用这种方式会带来一些隐含的问题:如果一个PHP文件需要使用很多其它类,那么就需要很多的require/include语句,这样有可能会造成遗漏或者包含进不必要的类文件。如果大量的文件都需要使用其它的类,那么要保证每个文件都包含正确的类文件肯定是一个噩梦。
PHP5为这个问题提供了一个解决方案,这就是类的自动装载(autoload)机制。

阅读全文 »

自己动手写PHP框架(一)

沙袋 发表于 2017-03-19  |  分类于 PHP  |  暂无评论

作者:Terry Gao

作为PHP Coder的入门进阶,自己动手写一个MVC框架可以从各方面巩固和加深你对PHP的理解,还能了解一些架构方面的基础知识。

1. 什么是MVC

MVC(Model-View-Controller,模型-视图-控制器)是PHP最常见的一种开发模式。它将程序划分为三层。

  • 最上面的一层,是直接面向最终用户的”视图层”(View)。它负责给用户提供操作界面,是程序的外壳。
  • 最底下的一层,是核心的”模型层”(Model),负责检索、组织和处理程序所需的数据或信息。
  • 中间的一层,就是”控制层”(Controller),它负责根据用户从”视图层”输入的指令,选取”模型层”中的数据,然后根据业务逻辑对其进行相应的操作,并产生最终结果。
阅读全文 »

PHP autoload原理

沙袋 发表于 2017-02-24  |  分类于 PHP  |  暂无评论

转自PHP autoload机制详解(by Corwien)

1. autoload机制概述

在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利。这也是OO设计的基本思想之一。在PHP5之前,如果需要使用一个类,只需要直接使用include/require将其包含进来即可。下面是一个实际的例子:

阅读全文 »

LNMP服务器搭建笔记(三)—— Nginx核心配置深入理解及优化

沙袋 发表于 2017-02-15  |  分类于 LNMP  |  暂无评论

Nginx的配置是以模块为单位来组织的,每一个模块包含一个或多个指令,指令是配置文件中的最小配置单元,一切配置项皆为指令。如http核心模块中的include、default_type、sendfile指令,都属于http模块。nginx所有模块中的指令见官方文档说明

注意:以下配置中的“上下文”表示指令可以配置在哪些模块中。
main:顶层配置,约束服务器的行为

1. 服务器级别核心配置

阅读全文 »

LNMP服务器搭建笔记(二) —— CentOS 7搭建LNMP

沙袋 发表于 2017-02-13  |  分类于 LNMP  |  暂无评论

1 更新基于Shell前端的RPM包管理器:yum源

相对于用RPM包安装软件,yum能更方便快捷,还能自动安装所需依赖包。因此,我们需要根据自己的主机类型找到对应的yum源进行更新。考虑到和谐,推荐使用国内的开源镜像源,例如 网易、华科、搜狐 等。这里以163镜像为例:

    ##### 先备份原有的yum源文件
    # mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup;
    ##### 切换到yum源文件根目录
    # cd /etc/yum.repos.d/
    ##### 根据步骤1中内核版本获取网易相应的CentOS的Base repo
    # wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
    ##### 重命名为CentOS-Base.repo
    # mv CentOS6-Base-163.repo CentOS-Base.repo
    ##### 建立缓存
    # yum makecache
    ##### 更新yum资源库(第一次可能会持续较长时间)
    # yum update
阅读全文 »

LNMP服务器搭建笔记(一) —— CentOS 搭建

沙袋 发表于 2017-02-10  |  分类于 LNMP  |  暂无评论

1. 新建用户

useradd gavntery

2. 修改用户密码

passwd gavntery

3. 添加sodu用户

阅读全文 »

高级PHP知识点

沙袋 发表于 2017-02-09  |  分类于 PHP  |  暂无评论

1. mysqli

  • 类似与PDO,是一个存取mysql的函数库,php官方推荐
  • 与PDO相比
    • 它仅支持mysql,PDO支持12中不同的数据库引擎
    • 两者都提供了OOP的支持,但是mysqli还支持函数式(过程式)的API
    • PDO支持名称式参数,mysqli不支持,例如:
        $params = array(':username' => 'test', ':email' => $mail, ':last_login' => time() - 3600);  
        $pdo->prepare('  
            SELECT * FROM users  
            WHERE username = :username  
            AND email = :email  
            AND last_login > :last_login');
        $pdo->execute($params);  
      
阅读全文 »

文章导航

1 2
avatar

qrcode

聊PHP开发、写读书感悟、偶尔谈谈互联网和人生!敬请关注微信公众号:PHP架构

18 文章
8 分类
27 标签
RSS
友情链接
测试架构师TT
© 2017 - 2025
沪ICP备16052040号-1