聊聊本文内容

之前讲过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 案例 ~ pt校验工具介绍

    简介:今天咱们来聊聊PT校验工具pt-table-checksum 注意事项:    1. 根据测试,需要一个即能登录主库,也能登录从库的账号:    2. 只能指定一个host,必须为主库的IP:  ...

  2. Django学习手册 - 模板语言(前端获取后台数据)

    先在views视图内,定义列表数据,以及字典数据.运用render函数传递两个列表数据至前端. from django.shortcuts import render list_info = [ {& ...

  3. Python提示AttributeError 或者DeprecationWarning: This module was deprecated解决方法

    Python提示AttributeError 或者DeprecationWarning: This module was deprecated解决方法 在使用Python的sklearn库时,发现sk ...

  4. 解决jdk1.7,1.8共存问题小思

    一 起因 随着jdk1.9呼之欲出之势,准备花点时间把jdk1.8搞掉,于是准备下一个项目的依赖改为jdk1.8,先去下载安装,安装好之后电脑上就存在两个版本的jdk.然后将两个版本的jdk路径都配置 ...

  5. Android避免OOM(内存优化)

    Android内存优化是性能优化很重要的一部分,而如何避免OOM又是内存优化的核心. Android内存管理机制 android官网有一篇文章 Android是如何管理应用的进程与内存分配 Andro ...

  6. Docker容器数据卷

    ⒈Docker容器中数据如何持久化? ①通过commit命令使容器反向为镜像 ②以容器数据卷的方式将数据抽离 ⒉容器数据卷的作用? ①容器数据的持久化 ②容器间继承.共享数据 ⒊能干嘛? 卷就是目录或 ...

  7. Ubuntu 分辨率显示出错,分辨率不是最佳分辨率的解决办法

    本文为转载,但在Ubuntu16.04LTS下亲测有效. (1)首先使用 xrandr 命令列出当前所能检测到的分辨率,如一台显示器,最佳分辨率为 1440x900(我的显示器尽量设置1680x105 ...

  8. mysql系列八、mysql数据库优化、慢查询优化、执行计划分析

    mysql的性能优化无法一蹴而就,必须一步一步慢慢来,从各个方面进行优化,最终性能就会有大的提升. 一.介绍 对mysql优化是一个综合性的技术,主要包括 表的设计合理化(符合3NF) 添加适当索引( ...

  9. sqlserver 备份 与 还原

    背景 真是够懒得,一看这个内容,如此简单.当时的想法就是网上教程一堆,全记下来有啥意思,只是记录了要点.不过写到这里,也就写个别的吧.sqlserver与Oracle比起来,我感觉有个重要差距就是存储 ...

  10. Linux设备模型:基础篇

    linux提供了新的设备模型:总线(bus).设备(device).驱动(driver).其中总线是处理器与设备之间通道,在设备模型中,所有的设备都通过总线相连:设备是对于一个设备的详细信息描述,驱动 ...