深入学习 Composer 自动加载(autoload)机制

众所周知 composer 是现代 PHP 项目的基石, 与古老的 pear 不同, composer 并不是一款专注于系统级别 php 管理的包管理系统,而是基于项目的一个库管理系统。这就好比 npm install -g 和 npm install 的区别。而且最主要的是 pear 不太能跟上时代的潮流,在大家都在用 psr-* 的时候 pear 依然我行我素自成一体。 好吧,可能这…

最佳实践系列(一)—— 漫谈 PHP 组件、框架、Composer 那些事

1、什么是组件 组件是一组打包的代码,是一系列相关的类、接口和Trait,用于帮助我们解决PHP应用中某个具体问题。例如,你的PHP应用需要收发HTTP请求,可以使用现成的组件如guzzle/guzzle实现。我们使用组件不是为了重新实现已经实现的功能,而是把更多时间花在实现项目的长远目标上。 优秀的PHP组件具备以下特性: 作用单一:专注于解决一个问题,而且使用简单的接口封装功能 小型…

基于Laravel开发博客应用系列 —— 实现文件上传管理功能

本节我们将在后台为博客应用实现文件上传管理(包括文件上传、预览及删除、目录创建及删除)功能,并且使用本地文件系统保存上传的文件。 1、配置本地文件系统 让我们从配置开始吧,我们在 public 目录下创建一个 uploads 目录用来存放上传的文件,这样所有上传文件都可以通过浏览器直接访问。 首先我们在博客项目目录下使用如下命令在 public 目录下创建 uploads 子目录: 很简…

Laravel 实例教程 —— 如何在Laravel 5.1中进行自定义包开发

1、安装Laravel 已安装Laravel的略过本步骤,未安装的参考Laravel安装文档:Laravel 5.1安装及配置 2、创建目录和服务提供者 在根目录下创建文件夹 packages/jai/contact/src 进入src目录并创建一个服务提供者ContactServiceprovider.php: <?php namespace Jai\Contact; use I…