聊聊本文内容

之前讲过php简单的内容,但是原生永远是不够看的,这次用框架做一些功能性的事情。

但是公司用自己的框架不能拿出来,用了用一些流行的框架比如tp,larveral之类的感觉太重,CI也不顺手,于是整体框架就用之前在幕客上看的这个,顺便自己手动改吧改吧,看哪不爽改哪里,一个精简的框架就出来了。

也在做java,但正是php这种能让人一眼看明白的精简的架构吸引了我,没有过多的设计和复杂的实现,整个项目就是明明白白聚焦于业务就好,怎么爽怎么来就好了。

前置的要求

  1. 具有一点php的功底。这个一点具体是多少,大概就是一上午时间看完w3cschool的课程,或者一个小时看完我上一个系列。看完我上一个系列估计还是懵着的,没事,直接来看这个就好。
  2. 安装php的环境,集成的就可以,比如mamp或者phpstudy。

实现的功能

技术上:

  1. 从头搭建一套mvc的web框架(大部分参考幕客网教程 https://www.imooc.com/learn/696
  2. 手撸框架加载,路由,MVC分层,配置文件,日志,加载使用第三方库的代码等,讲真这些东西自己撸一遍比用别人的要爽很多。
  3. 讲一下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示例:

运行项目

  1. 拉取代码(命令行路径进入到在一个你打算放代码的的文件夹里)
git clone https://github.com/gaopu1995/hiphp.git
  1. 安装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
//输出这种样子的就是成功了,失败的话自行百度吧。。
  1. 运行composer,加载第三方代码
composer install



中间提示信息意思是我有些扩展没有装,medoo这个库建议我装上,无视就好了。

4. 配置服务器

1. apache服务器

2. nginx服务器

3. php自带服务器

php -S localhost:端口 [默认访问文件]

//进入hiphp文件夹
php -S localhost:8899 index.php

如图



5. 访问主页


好啦,今天把代码拉下来能跑起来就ok啦,我先溜之大吉,下次开始讲内容~( ̄▽ ̄~)(~ ̄▽ ̄)

php手撸轻量级开发(一)的更多相关文章

  1. php手撸轻量级开发(三)composer小白入门

    composer介绍 composer是php的一个依赖管理工具,在项目中声明所依赖的外部工具库,会自动安装这些工具库及所依赖的库文件. 对我等初阶工程狮来说,就是拉别人的代码,用别人的库,一个进阶版 ...

  2. php手撸轻量级开发(二)框架加载

    先上图,有图有真相 1. 加载index文件 index文件是整个项目的唯一入口,任何请求进入项目都是走的index,只是带的参数不一样,然后再在index文件里加载其他文件,相当于把其他文件整个复制 ...

  3. 康少带你手撸orm

    orm 什么是orm? 对象关系映射: 一个类映射成一张数据库的表 类的对象映射成数据库中的一条条数据 对象点数据映射成数据库某条记录的某个值 优点:不会写sql语句的程序员也可以很6的操作sql语句 ...

  4. 手撸基于swoole 的分布式框架 实现分布式调用(20)讲

    最近看的一个swoole的课程,前段时间被邀请的参与的这个课程 比较有特点跟一定的深度,swoole的实战教程一直也不多,结合swoole构建一个新型框架,最后讲解如何实现分布式RPC的调用. 内容听 ...

  5. .NET手撸绘制TypeScript类图——上篇

    .NET手撸绘制TypeScript类图--上篇 近年来随着交互界面的精细化,TypeScript越来越流行,前端的设计也越来复杂,而类图正是用简单的箭头和方块,反映对象与对象之间关系/依赖的好方式. ...

  6. .NET手撸绘制TypeScript类图——下篇

    .NET手撸绘制TypeScript类图--下篇 在上篇的文章中,我们介绍了如何使用.NET解析TypeScript,这篇将介绍如何使用代码将类图渲染出来. 注:以防有人错过了,上篇链接如下:http ...

  7. 纯手撸web框架

    纯手撸web框架 一.Web应用的组成 接下来我们学习的目的是为了开发一个Web应用程序,而Web应用程序是基于B/S架构的,其中B指的是浏览器,负责向S端发送请求信息,而S端会根据接收到的请求信息返 ...

  8. 99%的程序员都在用Lombok,原理竟然这么简单?我也手撸了一个!|建议收藏!!!

    罗曼罗兰说过:世界上只有一种英雄主义,就是看清生活的真相之后依然热爱生活. 对于 Lombok 我相信大部分人都不陌生,但对于它的实现原理以及缺点却鲜为人知,而本文将会从 Lombok 的原理出发,手 ...

  9. 第二篇-用Flutter手撸一个抖音国内版,看看有多炫

    前言 继上一篇使用Flutter开发的抖音国际版 后再次撸一个国内版抖音,大部分功能已完成,主要是Flutter开发APP速度很爽,  先看下图 项目主要结构介绍 这次主要的改动在api.dart 及 ...

随机推荐

  1. mysql 原理~ index的详解

    一 简介:今天咱们来介绍下index的一些东西 二 数据的基本存储结构 1 磁盘空间被划分为许多大小相同的块(Block) 在内存中读出是页(Page).   2 一个表的这些数据块以链表的方式串联在 ...

  2. Python 成仙之路

    这个部分的所有内容,都是我学习Python过程中的学习笔记. 这个部分的所有内容,都是我学习Python过程中的学习笔记. 这个部分的所有内容,都是我学习Python过程中的学习笔记. 第一部分  p ...

  3. SpringMVC的JSON数据交互(七)-@Response,@RestController,@RequestBody用法

    1.@RequestBody   (自动将请求的数据封装为对象) 作用: @RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConve ...

  4. iptables学习笔记_____摘自朱双印个人日志 ____http://www.zsythink.net/

    iptables为我们预先定义了四张表 raw.mangle.nat.filter filter表负责过滤:允许那些ip访问.拒绝那些ip访问.允许那些端口...是最常用的表 #查看表里面所有的规则i ...

  5. 一步一步详解ID3和C4.5的C++实现

    1. 关于ID3和C4.5的原理介绍这里不赘述,网上到处都是,可以下载讲义c9641_c001.pdf或者参考李航的<统计学习方法>. 2. 数据与数据处理 本文采用下面的训练数据: 数据 ...

  6. nodejs 访问网站并操作xpath

    var xpath = require('xpath'); //引用xpath包 var dom = require('xmldom-silent').DOMParser;//引用xmldom包 va ...

  7. zabbix3.0.4关于java服务端程序内存溢出的处理

    关于java服务端程序内存溢出的处理 java服务端程序内存溢出会产生jvm.log文件,此时程序会挂掉,无法正常处理业务,需要重启服务 思路: 当存在jvm.log这个文件的时候则触发clean_j ...

  8. mybatis二级缓存应用及与ehcache整合

    mybaits的二级缓存是mapper范围级别,除了在SqlMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓存. 1.开启mybatis的二级缓存 在核心配 ...

  9. GitHub学习一-本地电脑与GitHub绑定

    1.创建ssh key $ ssh-keygen -t rsa -C "your_email@youremail.com"安装完git,右键git bash here,创建ssh ...

  10. 通用jsonp跨域技术获取天气数据

    1. 前言 在进行网站开发的过程中经常会用到第三方的数据,但是由于同源策略的限制导致ajax不能发送请求,因此也无法获得数据.解决ajax的跨域问题可以使用jsonp技术 2.代码 <!DOCT ...