php手撸轻量级开发(一)
聊聊本文内容
之前讲过php简单的内容,但是原生永远是不够看的,这次用框架做一些功能性的事情。
但是公司用自己的框架不能拿出来,用了用一些流行的框架比如tp,larveral之类的感觉太重,CI也不顺手,于是整体框架就用之前在幕客上看的这个,顺便自己手动改吧改吧,看哪不爽改哪里,一个精简的框架就出来了。
也在做java,但正是php这种能让人一眼看明白的精简的架构吸引了我,没有过多的设计和复杂的实现,整个项目就是明明白白聚焦于业务就好,怎么爽怎么来就好了。
前置的要求
- 具有一点php的功底。这个一点具体是多少,大概就是一上午时间看完w3cschool的课程,或者一个小时看完我上一个系列。看完我上一个系列估计还是懵着的,没事,直接来看这个就好。
- 安装php的环境,集成的就可以,比如mamp或者phpstudy。
实现的功能
技术上:
- 从头搭建一套mvc的web框架(大部分参考幕客网教程 https://www.imooc.com/learn/696 )
- 手撸框架加载,路由,MVC分层,配置文件,日志,加载使用第三方库的代码等,讲真这些东西自己撸一遍比用别人的要爽很多。
- 讲一下composer,composer类比java的maven,简单来说就是比如别人写好了一些代码,放到网上的仓库里,你想用,除了ctrl+cv复制过来,可以用composer把他的代码拉取到本地并使用。
代码
起名为hiphp,大致上就是helloworld的进阶版的意思,拉下来以后看framework分支,流程不熟悉可以看下边(不会是git也不会吧,我的天你out了,有时间赶紧学一下,现在可以点击下载zip下载下来<( ̄︶ ̄)↗[GO!])
github地址: https://github.com/gaopu1995/hiphp
git仓库地址: https://github.com/gaopu1995/hiphp.git
下载zip示例:

运行项目
- 拉取代码(命令行路径进入到在一个你打算放代码的的文件夹里)
git clone https://github.com/gaopu1995/hiphp.git
- 安装composer
curl -sS https://getcomposer.org/installer | php
然后当前文件夹下应该会有一个composer.phar文件,然后把它放到全局路径里护着在PATH里加入它的位置
mv composer.phar /usr/local/bin/composer
windows用户添加到环境变量里的PATH中
不会的这里有百度经验 https://jingyan.baidu.com/article/8ebacdf02d3c2949f65cd5d0.html
运行命令看看安装成功没有
composer --versio
//输出: Composer version 1.5.6 2017-12-18 12:09:18
//输出这种样子的就是成功了,失败的话自行百度吧。。
- 运行composer,加载第三方代码
composer install

中间提示信息意思是我有些扩展没有装,medoo这个库建议我装上,无视就好了。
4. 配置服务器
1. apache服务器
2. nginx服务器
3. php自带服务器
php -S localhost:端口 [默认访问文件]
//进入hiphp文件夹
php -S localhost:8899 index.php
如图

5. 访问主页

好啦,今天把代码拉下来能跑起来就ok啦,我先溜之大吉,下次开始讲内容~( ̄▽ ̄~)(~ ̄▽ ̄)
php手撸轻量级开发(一)的更多相关文章
- php手撸轻量级开发(三)composer小白入门
composer介绍 composer是php的一个依赖管理工具,在项目中声明所依赖的外部工具库,会自动安装这些工具库及所依赖的库文件. 对我等初阶工程狮来说,就是拉别人的代码,用别人的库,一个进阶版 ...
- php手撸轻量级开发(二)框架加载
先上图,有图有真相 1. 加载index文件 index文件是整个项目的唯一入口,任何请求进入项目都是走的index,只是带的参数不一样,然后再在index文件里加载其他文件,相当于把其他文件整个复制 ...
- 康少带你手撸orm
orm 什么是orm? 对象关系映射: 一个类映射成一张数据库的表 类的对象映射成数据库中的一条条数据 对象点数据映射成数据库某条记录的某个值 优点:不会写sql语句的程序员也可以很6的操作sql语句 ...
- 手撸基于swoole 的分布式框架 实现分布式调用(20)讲
最近看的一个swoole的课程,前段时间被邀请的参与的这个课程 比较有特点跟一定的深度,swoole的实战教程一直也不多,结合swoole构建一个新型框架,最后讲解如何实现分布式RPC的调用. 内容听 ...
- .NET手撸绘制TypeScript类图——上篇
.NET手撸绘制TypeScript类图--上篇 近年来随着交互界面的精细化,TypeScript越来越流行,前端的设计也越来复杂,而类图正是用简单的箭头和方块,反映对象与对象之间关系/依赖的好方式. ...
- .NET手撸绘制TypeScript类图——下篇
.NET手撸绘制TypeScript类图--下篇 在上篇的文章中,我们介绍了如何使用.NET解析TypeScript,这篇将介绍如何使用代码将类图渲染出来. 注:以防有人错过了,上篇链接如下:http ...
- 纯手撸web框架
纯手撸web框架 一.Web应用的组成 接下来我们学习的目的是为了开发一个Web应用程序,而Web应用程序是基于B/S架构的,其中B指的是浏览器,负责向S端发送请求信息,而S端会根据接收到的请求信息返 ...
- 99%的程序员都在用Lombok,原理竟然这么简单?我也手撸了一个!|建议收藏!!!
罗曼罗兰说过:世界上只有一种英雄主义,就是看清生活的真相之后依然热爱生活. 对于 Lombok 我相信大部分人都不陌生,但对于它的实现原理以及缺点却鲜为人知,而本文将会从 Lombok 的原理出发,手 ...
- 第二篇-用Flutter手撸一个抖音国内版,看看有多炫
前言 继上一篇使用Flutter开发的抖音国际版 后再次撸一个国内版抖音,大部分功能已完成,主要是Flutter开发APP速度很爽, 先看下图 项目主要结构介绍 这次主要的改动在api.dart 及 ...
随机推荐
- 2017/05/08 java 基础 随笔
1.null pointer exception 指针变量obj 没有指向任何空间 你调用它的方法和属性就会出错 2.基本数据类型值传递,不改变原值,调用后就会弹栈,局部变量随时消失 引用数据类型值传 ...
- Informatic学习总结_day03_update组件学习
- Django 聚合与查询集API实现侧边栏
本文从Django官方文档总结而来,将聚合的主要用法和查询集的常见方法做一归纳. 聚合 1. 聚合的产生来源于django数据库查询,通常我们使用django查询来完成增删查改,但是有时候需要更复杂的 ...
- 七、Sparse Autoencoder介绍
目前为止,我们已经讨论了神经网络在有监督学习中的应用.在有监督学习中,训练样本是有类别标签的.现在假设我们只有一个没有带类别标签的训练样本集合 ,其中 .自编码神经网络是一种无监督学习算法,它使用 ...
- OLAP和OLTP的区别(基础知识) 【转】
联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的,他同时提出了关于OLAP的12条准则.OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 ( ...
- maven项目有红叉,感叹号如何解决?
红色感叹号,pom.xml文件有红叉 修改了Maven私服服务器的IP地址.可在Maven安装路径下的conf/setting.xml中修改ip地址,具体参照“开发工具”/maven.工程中class ...
- Python select IO多路复用
一.select介绍 Python的select()函数是底层操作系统实现的直接接口.它监视套接字,打开文件和管道(任何带有返回有效文件描述符的fileno()方法),直到它们变得可读或可写,或者发生 ...
- OneNET麒麟座应用开发之一:初识OneNET麒麟座
今天收到了OneNET麒麟座开发板.能得到使用的机会只能说是幸运的.首先上一张靓照: 板子使用的MCU是STM32F103RET6,带有GSM摸块和Wifi摸块可以联网.带有显示屏接口和I2C接口以及 ...
- 前端工程化-webpack简介(一)
本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependenc ...
- Maven实战(Maven+Nexus建立私服【Linux系统】)
准备工作 下载及配置Maven3:http://www.cnblogs.com/leefreeman/archive/2013/03/05/2944519.html 下载Nexus:http://ne ...