-->

2020/04/21

Laravel v7.0 新功能

官方網站整理下來:


Airlock

使用 Airlock 可以更輕鬆的支援 single page application (SPA)、token-based API 等等,同時也可以針對 token 設定可存取犯元 (scope)。 (感覺上類似 OAuth)


Custom Eloquent Casts

以往使用者從 Eloquent ORM 拉出資料以後,使用者可以自訂 cast type,也就是說可用者可以自動 cast attribute 成特定格式。範例可以參考 Laravel 的 Pull Request



Blade

新增不少功能來 render HTML。詳細說明請參考 Larvel Docs。



HTTP Client

為了史 API 更靈活,Laravel 使用 Guzzle HTTP client 來與其他 API 溝通。



Routing Cache

透過新的方式來做 route 的 cache,即使大型網站 (800 routes) ,route matching 的速度也可以比以往快上 20 倍。

2020/04/08

用 venv 為 Python 建立虛擬環境

大家都知道把套件裝成 global 會發生什麼事吧?所以若要開發的 project 需要很複雜套件相依性,則可以考慮使用 Python 的 virtualenv。

先來安裝 pip3:
sudo aptitude install python3-pip

在用 pip3 來裝 virtualenv:
pip3 install virtualenv

會後在準備建立的專案執行以下指令:
python3 -m venv project

這個時後你會發現 project 目錄底下已經有不少東西了,這個時候就可以切入虛擬環境中:
$ source bin/activate
(project) $ 

奇蹟出現了,你的 prompt 最前面已經加上專案名稱,代表你已經完全在專案的環境底下,這環境下不管你用 pip 專什麼東西都不會影響到外部其他專案。

當開發結束,要離開個環境的時候,記得下指令「deactivate」以便離開虛擬環境。

Python 筆記

沒有特別提示的話,Python 的直譯器指的都是 CPython,另外還有 PyPy、IronPy、Jython 等。

另外 CPython 的 garbage collection 是 by reference counting 的,必要時可以用下面方式 GC:
del variable