原來真的可以在 Next.js 中寫 PHP 代碼?網(wǎng)友的腦洞又大了!
Next.js 14 近期發(fā)布,其中一個重大的功能點是 Server Actions 成為穩(wěn)定版,因其超前和熟悉的開發(fā)方式,在社交網(wǎng)絡上引起了一陣討論,應該是下面這張圖的內(nèi)容了。
圖片
有人說這是又回到 PHP 的時代了嗎?
古話說的好 “人有多大膽,地有多大產(chǎn)”。只要你敢想象,一切就皆有可能。這不,這幾天 Github 上出現(xiàn)了一個 https://github.com/bufferhead-code/nextjs-use-php 的項目,它的目的是讓你可以在 Next.js 中寫 PHP,這是不是真的使 “嘲笑 PHP” -> “理解 PHP” -> “成為 PHP” 成為現(xiàn)實?(注意,這并不是真的!)
就像使用 "use server" 一樣,在 React Server Component 中用 "use php" 來寫 PHP 代碼,如下所示:
return (
<button
formActinotallow={async () => {
'use php'
(new PDO('mysql:host=localhost:3306;dbname=public', 'root', 'root'))
->prepare("INSERT INTO Bookmarks (slug) VALUES (?)")
->execute(array('new'));
}}>
Insert Bookmark
</button>
)
還可以在 React Client Component 中這樣寫:
// actions.js
'use server'
export async function phpHelloWorld() {
'use php'
print "Hello from PHP";
}
// page.tsx
import { phpHelloWorld } from "../actions";
上述代碼,需要在 https://github.com/bufferhead-code/nextjs-use-php 倉庫拉取代碼并執(zhí)行以下命令運行:
npm install
npm run build
npm run start
瀏覽器打開 http://localhost:3000 查看結果。
聲明:我想說的是你不應該在任何項目中考慮使用它,上述只是作者通過一些腳本手段讓這些奇怪的想法成為了一種可能,但你覺得會有實際意義嗎?
類似這樣愚蠢的項目還有 https://github.com/elnardu/react-use-c、https://github.com/elnardu/react-use-rust
圖片
Next.js 自從 13 版本以來,帶來的 App Router、Server Component、Server Actions、預渲染(流式渲染)等功能,改變了以往傳統(tǒng)的前端開發(fā)方式,新的開發(fā)范式,總會帶來一些新的問題思考,這不一定就是壞的。