這本教程適合誰?
適合所有對PHP/MYSQL有一定基礎(chǔ),對Hyperf感興趣且迫切想要完成一個簡單項目的讀者。?
為什么寫這套教程?
寫下這句話的時候,這本教程未來是否能如期完成的目標(biāo)還很渺茫。但愿我能寫完吧,祝我好運(yùn)。:)
言歸正傳,其實(shí)是有兩個原因促使我想完成這本教程。
一、我想給自己寫一套給自己用的生活管理系統(tǒng)
我接觸PHP大概有10年出頭了,PHP也是我的第一門入門語言,我對此有非常深厚的感情,但是因為工作原因,我現(xiàn)在的主力開發(fā)語言并非是PHP,而是JavaScript。不過這都不重要,這并不影響我一直以來想給自己寫一套類似個人生活管理的系統(tǒng)的想法。
因為我也是個菜雞,所以我前前后后倒騰過ThinkPHP3.2,ThinkPHP5.0,Laravel5.4,Laravel6.0這些框架。(剛才去看了一下,竟然已經(jīng)出ThinkPHP6.0了)
從我個人的角度說說自己的感覺吧,首先是ThinkPHP,不知道為啥,總是莫名其妙就覺得low的很,也不知道是不是因為早期的D/M等等這些單字符的大寫助手方法給我留下的印象不太好,反正一直不太喜歡,但是因為我太辣雞了,想換Laravel而感覺無從下手。有一次我甚至還發(fā)現(xiàn)他的MODEL在第三位版本號更新時居然發(fā)生了行為不統(tǒng)一的情況,這簡直驚呆了我,然后就毫不猶豫的轉(zhuǎn)Laravel了。
因為一直以來覺得Laravel是個很高級的框架,所以抱著敬畏的心態(tài)學(xué)習(xí)了Laravel,最后發(fā)現(xiàn)這東西寫的確實(shí)是好,但是就是感覺有些復(fù)雜了,還有一個情況就是感覺用來做API不太合適,總感覺他滿篇都是讓你做傳統(tǒng)Web開發(fā)的東西。雖然說他后來弄出了一個Lumen,我也簡單體驗了下,發(fā)現(xiàn)這東西和官網(wǎng)上說的并不一樣。官網(wǎng)上說他很輕量,沒錯,的確很輕量,但是輕量的有點(diǎn)啥也不剩的感覺了。你想用點(diǎn)啥東西呢,那就還得原模原樣的給裝回來。那我都裝回來了,我為啥不直接用Laravel?
直到最后,在上班摸魚的時候偶然聽群友吹牛逼提到了Hyperf。
Hyperf的這些關(guān)鍵詞“協(xié)程”、“Swool”、“單例”、“并發(fā)”......,每一個都充滿了高級感??!再一看文檔,感覺這就是協(xié)程版的Laravel嘛!于是我毫不猶豫的決定我這套系統(tǒng)要用Hyperf來實(shí)現(xiàn)了,這簡直裝逼滿分!
二、我知道你們看官方的文檔非常的吃力
別問我我是怎么知道的哈哈哈。
說實(shí)話啊,我一直覺得Hyperf的官方文檔寫的太辣雞了(大佬別噴我,我是站在小白的角度)。我就這么說吧,那文檔根本不是寫給入門者看的,入門者硬著頭皮也很難看懂。所以這也是我寫這本教程的第二個重要原因——我想寫一個小白也能看得懂的教程。
所以我打算從現(xiàn)在開始邊寫邊整理記錄,把開發(fā)過程中遇到的問題和注意事項寫進(jìn)本教程。
這本教程都有什么內(nèi)容?
很顯然,因為我自己水平有限,所以只能用一些通俗易懂的方式來告訴你如何從零開始搭建一個基于Hyperf2.2的API服務(wù)。這其中包括數(shù)據(jù)遷移(建表)的創(chuàng)建和使用,模型Model的創(chuàng)建和使用,以及API服務(wù)中很常見的JWT(JSON Web Token)的配置和使用方法,短信和郵件的發(fā)送,定時任務(wù)的創(chuàng)建和使用等等。對于一個簡單的API服務(wù)來說,上面提到的這些東西就可以滿足基本的需求了。
對了,最后說一點(diǎn),這本教程和其他教程的最大不同點(diǎn)在于他不是零散的記錄一些Bug的處理方法,也不是試圖通過幾篇文章就直接完成一個基礎(chǔ)項目的搭建,而是帶領(lǐng)讀者一步步的了解并思考,最后完成自己的項目。