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 及 ...
随机推荐
- mysql 案例~select引起的性能问题
案例1 背景:测试环境下发现大量select查询,而且负载飙升到90+ 排查思路: 1 老规则,按照排错脚本走一圈,规划出几个元素(1 针对库访问的统计 2针对具体语句类型的统计),发现有大量的sel ...
- Keil MDK忽略警告:文件末尾空白行警告
使用Keil MDK调试程序的时候,没有习惯在每个文件的末尾增加一个空白行,结果文件一多,编译时产生的警告就一大堆,排错都得用滚轮滚好久,就一个空白行还得出警告,烦死了,烦死了,烦死了!实在受不了了, ...
- JSP验证码。
package com; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.aw ...
- python3数据结构与算法
python内置的数据结构包括:列表(list).集合(set).字典(dictionary),一般情况下我们可以直接使用这些数据结构,但通常我们还需要考虑比如搜索.排序.排列以及赛选等一些常见的问题 ...
- python装饰器@用法
这个是我见过比较好的讲解链接: [廖雪峰的官方网站 - 装饰器]
- 无法下载apk等格式的文件的解决方案---ASP .NET Core 2.0 MVC 发布到IIS上以后无法下载apk等格式的文件的解决方案
ASP .NET Core MVC 发布到 IIS 上以后 无法下载apk等格式的文件 使用.NET Core MVC创建了一个站点,其他文件可以下载,但是后来又需求,就把手机端的apk合适的文件上 ...
- Java 开发环境配置--eclipse工具进行java开发
Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境. Windows 上安装开发环境 Linux 上安装开发环境 安装 Eclipse 运行 Java Cloud Studio ...
- Java 程序员必须收藏的资源大全
Java 程序员必须收藏的资源大全 Java(27) 古董级工具 这些工具伴随着Java一起出现,在各自辉煌之后还在一直使用. Apache Ant:基于XML的构建管理工具.官网 cglib:字节码 ...
- NodeJs>------->>第三章:Node.js基础知识
第三章:Node.js基础知识 一:Node.js中的控制台 1:console.log.console.info 方法 console.log(" node app1.js 1> ...
- C++ code:函数指针数组
函数指针作为一种数据类型,当然可以作为数组的元素类型.例如,要实现用菜单来驱动函数调用的程序框架,则用函数指针数组来实现就比较容易维护. #include<iostream> using ...