目前中文的相關書籍 出版日期都有點久
導致最近在網路上看到有人問問題
大部分的原因都是版本差異
ex. mysql_* 系列函式在新版已經拿掉瞜
所以真的要看的話建議看完語法就好
另外還是會推薦看兩本書
現代 PHP|新的特點及良好習慣(Modern PHP: New Features and Good Practices)
雖然這本出來時的php版本是5.6
現在stable 已經7.2了
不過還是講到很多基礎的特性
建議還是去找來看一下
有很多重點
強烈建議看一下
簡中版本八月更新 看不懂英文也可以先看
原文還蠻常更新的
有空可以回來看一下
前面提到版本差異
PHP在5.3這個版本號應該是個分水嶺
5.2以前是地獄 5.3以後是天堂
主要差別是多了namespace這個特性
從此php的套件使用方式完全改變了
從以前的下載 解壓縮 require
檔案裏面也要require來require去
少了一個就準備噴錯誤
變成composer require
還有packagist這個網站可以找你想用的套件
利用composer也可以很方便的在小專案引入套件
基本上是個現代PHP不可或缺的東西
沒看過不要跟我說你在寫PHP
想看詳細的就找本現代PHP吧
mysql 非常古老,并且已经被以下两个扩展取代:
PHP 中的 mysql 扩展已经不再进行新的开发了,在 PHP 5.5.0 版本中正式标记为废弃,并在 7.0 正式被移除 。
想要辨别 mysql
是否被使用,你不需要到 php.ini
去查看。只需要使用编辑器打开你的项目,然后全局搜索 mysql_*
,如果有类似 mysql_connect()
或者 mysql_query()
方法出现,那么你就使用了 mysql
。
如果因为特别原因还未考虑升级到 PHP 7.x 的话,可以考虑使用 mysqli 或者 PDO 来临时解决问题。
以上引用自 http://laravel-china.github.io/php-the-right-way/#databases
所以如果你看到書裡還在用mysql_* 系列函式的東西 請記得轉換一下
ext/mysqli | PDO_MySQL | ext/mysql | |
---|---|---|---|
PHP version introduced | 5.0 | 5.1 | 2.0 |
Included with PHP 5.x | Yes | Yes | Yes |
Included with PHP 7.x | Yes | Yes | No |
Development status | Active | Active | Maintenance only in 5.x; removed in 7.x |
Lifecycle | Active | Active | Deprecated in 5.x; removed in 7.x |
Recommended for new projects | Yes | Yes | No |
OOP Interface | Yes | Yes | No |
Procedural Interface | Yes | No | Yes |
API supports non-blocking, asynchronous queries with mysqlnd | Yes | No | No |
Persistent Connections | Yes | Yes | Yes |
API supports Charsets | Yes | Yes | Yes |
API supports server-side Prepared Statements | Yes | Yes | No |
API supports client-side Prepared Statements | No | Yes | No |
API supports Stored Procedures | Yes | Yes | No |
API supports Multiple Statements | Yes | Most | No |
API supports Transactions | Yes | Yes | No |
Transactions can be controlled with SQL | Yes | Yes | Yes |
Supports all MySQL 5.1+ functionality | Yes | Most | No |
引用自http://php.net/mysqlinfo.api.choosing
就功能性我是覺得pdo跟mysqli都不錯
並沒有絕對的優劣
pdo號稱可以跨database 但是遇到特殊語法還是會GG
這邊有一篇相關討論可以看一下
學東西不要人家說哪個好用就跟著說好用
要理解優缺點
重點是千萬千萬不要直接組合字串去跑SQL
在啥程式語言都一樣
個人用過的只有兩套
laravel 跟 codeigniter
剛好也是兩個時代
我從2.X開始用 用到3.X
中間有遇到PHP4的案子還跑去用1.X版
架構簡單 隨拆即用 文件清楚
https://codeigniter.org.tw/userguide3/
感謝appleboy
架構簡單是優點
但也是缺點
遇到大型專案要擴充架構的時候就要自行設計
要自行設計不是問題
問題在於十個人去設計可能會有十一種作法
所以我覺得大型專案要找一個有架構可以參考的Framework
laravel我從3.x開始觀望
一開始覺得太繁瑣 所以就只是看看而已沒在用
進入4.x以後有玩一下 但還是覺得麻煩
而且優點不足以讓我替換掉codeigniter
當5.1 LTS版本出來以後我才覺得可以入坑了
不過當時也沒有專案讓我覺得需要用上laravel
又正好此時公司遇到要自行建立系統的狀況
所以又研究了一下各個Framewok
最後還是覺得在台灣用laravel比較好
主要原因是社群比較有在經營
要問問題也比較找的到人
所以就推薦用這套了
當時個人還是比較喜歡codeigniter
但是覺得團隊跟個人需求還是會不一樣
沒有
沒有
沒有
不重要也是要講三次
畢竟也不是每天都有值得分享的文章的XD
有一些是之前分享過了
除非是有修改或者是有有趣的回應
不然不會重複分享
(今天看過的文章)[https://github.com/fripig/article_log/issues/418]