通过composer组件化学习PHP框架道路(一)

进度汇报与阶段疑问(一)

  • 这个框架本打算暑假开始搭建,可最近心里老是想起这件事,于是今天早上5:37起床开电脑把开头的准备工作搞定了。

进度汇报

首先是composer项目的初始化我没有用使用composer init,而且通过composer.json开始项目。然后新建app框架应用目录,config项目配置目录,public前端访问目录,framework自定义类库。接着立刻开始github寻找合适了composer路由组件,考虑到初步学习就找了个加注释仅有163行代码的Macaw。然后前端建立index.php引入composer自动加载文件和config/routes.php路由配置文件,并在routes.php中使用Macaw调用不存在的静态方法get,第一个参数'/index',在闭包函数中输出字符串。

这个时候通过修改hosts和vhost.conf将qframe.dev映射到本地public目录,我这里使用的是apache。访问该虚拟域名/index发现并没有成功输出字符串,但是访问index.php/index 却可以。这是因为apache的rewrite module开启后还需要书写.htaccess请求转发文件,这个步骤是apache伪静态的内容,我就直接把laravel的这个文件cp过来用了。

这时候用postman测试restful常用四大方法都没问题,路由部分就结束了。开始控制器和路由的关联。在app中新建Controllers并书写基础控制器和测试控制器,路由和控制器中的写法和laravel使用的写法类似,再次访问网址直接看不到界面了,这是因为composer.json没有加入自动加载配置。添加autoload键值对并使用classmap数组加载控制器目录,然后执行dump-composer更新锁文件即可。

接下来进入一个本可以很麻烦的阶段:数据库操作。由于RESTful以资源实体为目标,我将Model修改为具体的Entities,也方便后期分层添加Model层的其他处理目录。暂时我只能在控制器中连接数据库进行CURD操作,后期再来依赖注入。那么我们新建数据库,数据表,插入数据,然后在Entities中建立Article.php文章实体,composer.json的classmap数组加载该目录。

在Article的first静态方法中连接数据库并返回查询到的数据,在控制器中直接Article::first()即可。关于为什么使用静态方法,这一点我认为是防止后续还需要这段数据,减少查库操作。

阶段疑问

.htaccess书写用到了正则表达式且涉及到apache模块的开发和使用问题,存在少许疑问。

Macaw.php一共就163行代码,暂时没有完全理解使用原因。

关于composer的autoload四种方式不太理解,以及spr-0在此处的兼容性使用。

关于数据库部分的配置和CURD操作封装问题,还需要学习一种composer组件,刚开始就不考虑这件事吧。

关于静态方法在此处使用的原因,不知道自己的理解有哪里不妥当和不完善之处。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,587评论 18 139
  • Composer Repositories Composer源 Firegento - Magento模块Comp...
    零一间阅读 3,956评论 1 66
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,401评论 25 707
  • 10:10 脑子里时常跳出很多想法 因为雾霾太过严重,单双号出行,给路面交通带来的便利感,真是让人觉得幸福。 即便...
  • 这两日天儿太任性 昨天暖暖的脉脉含情 今天的风声却让人胆战心惊 接下来的几天都没有春的踪影 冬在春的地盘如此放纵 ...
    张文莉阅读 581评论 1 3