<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>NativePHP 教學 &#8211; FoxDevelop</title>
	<atom:link href="https://www.foxdevelop.com/zh-tw/category/nativephp-zh-tw/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.foxdevelop.com</link>
	<description>獨立軟體開發工作室</description>
	<lastBuildDate>Sat, 04 Jul 2026 09:59:08 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://www.foxdevelop.com/wp-content/uploads/2026/05/fox-svgrepo-com-1.png</url>
	<title>NativePHP 教學 &#8211; FoxDevelop</title>
	<link>https://www.foxdevelop.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>頁面視圖 WebView</title>
		<link>https://www.foxdevelop.com/zh-tw/2026/07/04/%e9%a0%81%e9%9d%a2%e8%a6%96%e5%9c%96-webview/</link>
					<comments>https://www.foxdevelop.com/zh-tw/2026/07/04/%e9%a0%81%e9%9d%a2%e8%a6%96%e5%9c%96-webview/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Sat, 04 Jul 2026 09:59:08 +0000</pubDate>
				<category><![CDATA[NativePHP 教學]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=3239</guid>

					<description><![CDATA[上一堂課我們認識了頁面UI的對應位置，這堂課接續往下學習。  ...]]></description>
										<content:encoded><![CDATA[

<p class="wp-block-paragraph">上一堂課我們認識了頁面UI的對應位置，這堂課接續往下學習。</p>



<h3 class="wp-block-heading">認識<strong>單一原生網頁檢視元件（WebView）</strong></h3>



<p class="wp-block-paragraph">所有以 NativePHP 開發的行動裝置App，皆以<strong>單一原生網頁檢視元件（WebView）</strong>作為核心載體。透過網頁檢視元件，你能使用任何熟悉的前端網頁技術建構應用介面（UI）；因為本質上它就是內嵌瀏覽器，負責渲染所有網頁內容。</p>



<p class="wp-block-paragraph">WebView 預設會填滿整個螢幕可視範圍；但若開啟相機等功能時，相機操作畫面會暫時覆蓋 WebView。</p>



<p class="wp-block-paragraph">NativePHP 的核心架構：PHP 後端 + 任意前端技術混合開發（Vue、jQuery、Tailwind 等）</p>



<p class="wp-block-paragraph">WebView 永遠置頂顯示，僅相機、內建瀏覽器等全螢幕場景會遮蓋它，我們看見的所有介面UI都由 WebView 負責呈現。</p>



<p class="wp-block-paragraph">NativePHP 行動版底層核心：單一 WebView 容器，不具原生多頁面分層機制；也就是 NativePHP 自始至終只存在單一個頁面，頁面跳轉、返回動作全都在同一個 WebView 內完成。</p>



<p class="wp-block-paragraph">NativePHP 行動App全程<strong>只會存在唯一一個原生 WebView 控制項</strong>，整支App所有畫面渲染都放在這一個網頁容器當中：</p>



<ul class="wp-block-list">
<li>頁面跳轉、路由切換、返回上一頁、彈窗、子頁面、SPA切換，<strong>完全不會建立、開啟第二個 WebView</strong>；此設計目的是降低記憶體耗用。</li>



<li>不存在 Android / iOS 原生多頁堆疊、原生 Activity / ViewController 分頁機制；</li>



<li>我們所看見的「多個頁面」，實際上只是前端路由（Laravel / Livewire / Vue Router 等）在同一個 WebView 內切換 DOM，運作邏輯與網頁單頁應用完全相同。</li>
</ul>



<h4 class="wp-block-heading">1 檢視區域 Viewport 設定（透過 meta 標籤控制螢幕適配）</h4>



<p class="wp-block-paragraph">有開發行動網頁經驗的開發者，應該都對這個設定不陌生。</p>



<p class="wp-block-paragraph">WebView 與一般瀏覽器一樣具備 Viewport 檢視區域概念，代表頁面可顯示範圍，透過 meta 標籤設定，語法與傳統網頁完全一致。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"viewport"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"width=device-width, initial-scale=1"</span>&gt;</span></code></span></pre>


<p class="wp-block-paragraph">請在你的 HTML 或 Blade PHP 頁面內加入這組 meta 標籤。現今多數網站都會配置這段語法，目的是讓網頁完美適配行動裝置瀏覽器；若缺少這組設定，頁面文字會顯得細小模糊。主因是手機螢幕 DPI 解析度極高，未做行動適配時頁面會以電腦版瀏覽器規格渲染，造成字體過細、排版混亂等狀況。</p>



<p class="wp-block-paragraph">各位可隨意開啟網站示範，以 NativePHP 官方文件頁面為例：<a href="https://nativephp.com/docs/mobile/3/the-basics/web-view">Web View &#8211; NativePHP mobile v3 &#8211; NativePHP</a>，於瀏覽器右鍵檢視網頁原始碼即可看見該標籤。</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="586" height="431" src="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-70.png" alt="" class="wp-image-2030" srcset="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-70.png 586w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-70-300x221.png 300w" sizes="(max-width: 586px) 100vw, 586px" /></figure>



<p class="wp-block-paragraph">這組設定包含兩個核心屬性：</p>



<p class="wp-block-paragraph"><code>width=device-width</code>：頁面寬度等同裝置實體螢幕寬度</p>



<p class="wp-block-paragraph"><code>initial-scale=1</code>：頁面初始縮放比例為1:1，不自動放大或縮小</p>



<h4 class="wp-block-heading">2 停用雙指縮放（模擬原生App操作體感）</h4>



<p class="wp-block-paragraph">原生 Android、iOS App 預設無法透過雙指張開/收合放大縮小頁面，但一般行動瀏覽器允許此操作。若要讓 NativePHP 頁面體感更接近原生App，必須關閉手動縮放功能，避免使用者隨意調整畫面大小。</p>



<p class="wp-block-paragraph">開發行動App時，通常需要完整掌控介面顯示，禁止使用者手動縮放頁面，讓應用操作邏輯與純原生App一致。</p>



<p class="wp-block-paragraph">於原本的 viewport 標籤追加以下屬性：</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"viewport"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"width=device-width, initial-scale=1, user-scalable=no"</span>&gt;</span></code></span></pre>


<p class="wp-block-paragraph"><code>user-scalable=no</code>：關閉手動縮放手勢</p>



<h4 class="wp-block-heading">3 全螢幕邊緣渲染 Edge-to-Edge（瀏海/曲面螢幕適配前置設定）</h4>



<p class="wp-block-paragraph">為最大化UI設計彈性，WebView 預設會填滿整塊螢幕，僅透過 HTML/CSS/JS 就能在前台狀態任意位置繪製內容。</p>



<p class="wp-block-paragraph">但需留意：螢幕並非全部區域都能正常顯示內容。多數裝置具備前置鏡頭瀏海、螢幕圓角、曲面邊緣，蘋果裝置另有動態島；這些區域雖屬於檢視區範圍，卻會遮蓋內容、無法點擊操作。</p>



<p class="wp-block-paragraph">若要完整適配異形螢幕，需在 meta Viewport 標籤加入 <code>viewport-fit=cover</code>，並搭配安全邊距（Safe Area Insets）樣式使用。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"viewport"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"width=device-width, initial-scale=1, user-scalable=no, viewport-fit=cover"</span>&gt;</span></code></span></pre>


<p class="wp-block-paragraph"><code>viewport-fit=cover</code>：允許頁面渲染延伸至螢幕最邊緣（包含瀏海、圓角區域）；僅開啟此參數仍會造成內容被瀏海遮擋，務必搭配「安全區 Safe Area」CSS樣式，請繼續往下閱讀。</p>



<h3 class="wp-block-heading">安全區 Safe Areas</h3>



<p class="wp-block-paragraph">安全區定義為螢幕<strong>不會被遮擋</strong>的可視範圍：不會被硬體結構（螢幕圓角、前置鏡頭瀏海、動態島）、系統常駐介面（底部Home手勢列、狀態列）遮蓋。</p>



<p class="wp-block-paragraph">裝置執行時會自動計算安全區邊界，並隨直橫螢幕切換動態調整；NativePHP 透過一組內建 CSS 變數即可實現跨裝置自適應排版。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-comment">&lt;!-- 為 body 加入全域安全區約束 --&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">body</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"nativephp-safe-area"</span>&gt;</span>
    <span class="hljs-comment">&lt;!-- 頂部導覽列左右預留螢幕圓角邊距 --&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"fixed top-0 left-0 w-full bg-red-500 pl-&#91;var(--inset-left)] pr-&#91;var(--inset-right)]"</span>&gt;</span>
        頂部導覽列
    <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span></code></span></pre>


<ul class="wp-block-list">
<li><code>--inset-top</code> 頂部安全間距（狀態列 / 瀏海高度）</li>



<li><code>--inset-bottom</code> 底部安全間距（手勢操作列高度）</li>



<li><code>--inset-left</code> 左側曲面/圓角安全邊距</li>



<li><code>--inset-right</code> 右側曲面/圓角安全邊距</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">以上幾組 CSS 變數皆由 NativePHP Mobile 官方內建，框架會自動載入，不需額外引入第三方CSS函式庫。</p>
</blockquote>



<p class="wp-block-paragraph">快捷全域 CSS 類別：<code>nativephp-safe-area</code></p>



<p class="wp-block-paragraph">可直接於 HTML 根容器標籤加上此類別，自動將內容限制在安全區範圍內，大幅簡化開發流程，參考上方範例程式碼。</p>



<p class="wp-block-paragraph">我們透過範例對照差異，先以官方示範理解原理，後續再使用實機測試。首先示範未做安全區適配的狀況：</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"fixed top-0 left-0 w-full bg-red-500"</span>&gt;</span>
    ...
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span></code></span></pre>


<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="642" src="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-72-1024x642.png" alt="" class="wp-image-2038" srcset="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-72-1024x642.png 1024w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-72-300x188.png 300w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-72-768x481.png 768w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-72-480x300.png 480w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-72-640x400.png 640w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-72.png 1206w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">從上圖可見，頂部標題列直接被前置鏡頭瀏海覆蓋。</p>



<p class="wp-block-paragraph">若切換為橫向模式，狀況會更糟，如下圖：</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="471" src="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-73-1024x471.png" alt="" class="wp-image-2039" srcset="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-73-1024x471.png 1024w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-73-300x138.png 300w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-73-768x353.png 768w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-73-1536x706.png 1536w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-73-2048x942.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">橫屏狀態下，畫面左右兩側出現大片空白，頂部標題列無法填滿整個橫向螢幕，視覺上相當不美觀。</p>



<p class="wp-block-paragraph">若加上安全區設定，於 body 標籤套用官方內建樣式：</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">body</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"nativephp-safe-area"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"fixed top-0 left-0 w-full bg-red-500 pl-&#91;var(--inset-left)] pr-&#91;var(--inset-right)]"</span>&gt;</span>
    ...
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span></code></span></pre>


<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="471" src="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-74-1024x471.png" alt="" class="wp-image-2040" srcset="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-74-1024x471.png 1024w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-74-300x138.png 300w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-74-768x353.png 768w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-74-1536x706.png 1536w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-74-2048x942.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="869" src="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-75-1024x869.png" alt="" class="wp-image-2041" srcset="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-75-1024x869.png 1024w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-75-300x254.png 300w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-75-768x651.png 768w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-75.png 1206w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">介面立刻完整填滿螢幕，美觀度大幅提升。</p>



<h3 class="wp-block-heading">程式碼修改實作</h3>



<p class="wp-block-paragraph">接著修改上一堂課使用的範例檔案 welcome.blade.php</p>



<p class="wp-block-paragraph">替換 body 內完整內容，範例使用 Tailwind 前端UI框架，語法類似 Bootstrap。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-meta">&lt;!DOCTYPE <span class="hljs-meta-keyword">html</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">html</span> <span class="hljs-attr">lang</span>=<span class="hljs-string">"{{ str_replace('_', '-', app()-&gt;getLocale()) }}"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">head</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">charset</span>=<span class="hljs-string">"utf-8"</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"viewport"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"width=device-width, initial-scale=1"</span>&gt;</span>

        <span class="hljs-tag">&lt;<span class="hljs-name">title</span>&gt;</span>{{ config('app.name', 'Mimi') }} - Built with NativePHP ： welcome to foxdevelop.com<span class="hljs-tag">&lt;/<span class="hljs-name">title</span>&gt;</span>

    <span class="hljs-tag">&lt;/<span class="hljs-name">head</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">body</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"fixed top-0 left-0 w-full bg-red-500"</span>&gt;</span>
			頂部導覽列
		<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span>
</code></span></pre>


<p class="wp-block-paragraph">儲存檔案後，開啟命令提示字元切換至專案根目錄，執行下方指令：</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-tag">php</span> <span class="hljs-selector-tag">artisan</span> <span class="hljs-selector-tag">native</span><span class="hljs-selector-pseudo">:jump</span></code></span></pre>

<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-tag">D</span>:\<span class="hljs-selector-tag">phpproject</span>\<span class="hljs-selector-tag">my-app</span>&gt;<span class="hljs-selector-tag">php</span> <span class="hljs-selector-tag">artisan</span> <span class="hljs-selector-tag">native</span><span class="hljs-selector-pseudo">:jump</span></code></span></pre>


<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="949" height="216" src="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-71.png" alt="" class="wp-image-2035" srcset="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-71.png 949w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-71-300x68.png 300w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-71-768x175.png 768w" sizes="auto, (max-width: 949px) 100vw, 949px" /></figure>



<p class="wp-block-paragraph">開發預覽網址：<a href="http://127.0.0.1:8000">http://127.0.0.1:8000</a></p>



<p class="wp-block-paragraph">僅透過電腦瀏覽器無法觀察行動裝置適配效果，必須使用實機執行測試。</p>



<h4 class="wp-block-heading">實機偵錯流程</h4>



<p class="wp-block-paragraph">開發 Android App 流程相同：準備一台 Android 手機、透過傳輸線連接電腦，手機需開啟開發者模式；若不清楚開啟方式可上網查詢，步驟簡單。另外需安裝 ADB 工具，此為 Google 提供、電腦遠端操作手機的工具，安裝 Android Studio 時會一併自帶。</p>



<p class="wp-block-paragraph">安裝完整 <strong>Android Studio</strong>，確保同步安裝 Android SDK、SDK Platform Tools（內含 ADB 偵錯工具）</p>



<p class="wp-block-paragraph">確認 ADB 安裝正常：</p>



<p class="wp-block-paragraph">開啟終端機輸入指令：adb devices</p>


<pre class="wp-block-code"><span><code class="hljs language-php">D:\phpproject\my-app&gt;adb devices
<span class="hljs-keyword">List</span> of devices attached
a34354354354352    device</code></span></pre>


<p class="wp-block-paragraph">上列範例代表已有手機成功連線。</p>



<p class="wp-block-paragraph">切換至專案資料夾，於 CMD 執行以下指令編譯並安裝Android App：php artisan native:run android</p>


<pre class="wp-block-code"><span><code class="hljs language-powershell">D:\phpproject\my<span class="hljs-literal">-app</span>&gt;php artisan native:run android

  Running NativePHP <span class="hljs-keyword">for</span> Android

 Build log: D:\phpproject\my<span class="hljs-literal">-app</span>\nativephp\android<span class="hljs-literal">-build</span>.log

  Updating Android configuration ....................................................................... <span class="hljs-number">903.01</span>ms DONE
  Copying Laravel source .................................................................................... <span class="hljs-number">18</span>s DONE
  Installing Composer dependencies</code></span></pre>


<p class="wp-block-paragraph">編譯流程會自動安裝多項相依套件，包含 Kotlin、Gradle 等，因此需確保網路連線穩定。</p>



<p class="wp-block-paragraph">若網路需透過代理，可修改專案內設定檔路徑：D:\phpproject\my-app\nativephp\android\gradle\wrapper\gradle-wrapper.properties</p>



<p class="wp-block-paragraph">將 Gradle 下載位址替換為國內鏡像站台，範例如下：</p>


<pre class="wp-block-code"><span><code class="hljs language-properties"><span class="hljs-comment">#Mon Feb 10 07:33:27 EST 2025</span>
<span class="hljs-attr">distributionBase</span>=<span class="hljs-string">GRADLE_USER_HOME</span>
<span class="hljs-attr">distributionPath</span>=<span class="hljs-string">wrapper/dists</span>
<span class="hljs-comment">#distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip</span>
<span class="hljs-attr">distributionUrl</span>=<span class="hljs-string">https\://mirrors.aliyun.com/maven/gradle/gradle-8.13-bin.zip</span>
<span class="hljs-attr">zipStoreBase</span>=<span class="hljs-string">GRADLE_USER_HOME</span>
<span class="hljs-attr">zipStorePath</span>=<span class="hljs-string">wrapper/dists</span>
</code></span></pre>]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh-tw/2026/07/04/%e9%a0%81%e9%9d%a2%e8%a6%96%e5%9c%96-webview/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>resources 資料夾</title>
		<link>https://www.foxdevelop.com/zh-tw/2026/06/16/resources-%e8%b3%87%e6%96%99%e5%a4%be/</link>
					<comments>https://www.foxdevelop.com/zh-tw/2026/06/16/resources-%e8%b3%87%e6%96%99%e5%a4%be/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Tue, 16 Jun 2026 01:13:24 +0000</pubDate>
				<category><![CDATA[NativePHP 教學]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=1912</guid>

					<description><![CDATA[上一堂課我們透過 NativePHP 建立了一個預設專案，並在瀏覽器開啟該應用，預設網址為：http://127.0.0.1:8000/]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">上一堂課我們透過 NativePHP 建立了一個預設專案，並在瀏覽器開啟該應用，預設網址為：http://127.0.0.1:8000/</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="476" height="573" src="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-11.png" alt="" class="wp-image-1862" srcset="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-11.png 476w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-11-249x300.png 249w" sizes="auto, (max-width: 476px) 100vw, 476px" /></figure>



<p class="wp-block-paragraph">這個頁面本質上就是一般網頁，這點不用懷疑。NativePHP 的介面畫面，全部都是靠 HTML、CSS、JS 來實作。那要怎麼自訂修改這個介面呢？</p>



<p class="wp-block-paragraph">介面相關的程式檔案，全都放在專案根目錄下的 resources 資料夾</p>



<p class="wp-block-paragraph">以作者自身環境為例，完整路徑如下：</p>



<div class="wp-block-math"><math display="block"><semantics><mrow><mi>D</mi><mo lspace="0.2222em" rspace="0.2222em">:</mo><mtext style="color:#b22222;">\phpproject</mtext><mtext style="color:#b22222;">\my</mtext><mo>−</mo><mi>a</mi><mi>p</mi><mi>p</mi><mtext style="color:#b22222;">\resources</mtext></mrow><annotation encoding="application/x-tex">D:\phpproject\my-app\resources</annotation></semantics></math></div>



<p class="wp-block-paragraph">打開資料夾後，會看見底下有幾個子目錄：</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="382" height="82" src="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-12.png" alt="" class="wp-image-1863" srcset="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-12.png 382w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-12-300x64.png 300w" sizes="auto, (max-width: 382px) 100vw, 382px" /></figure>



<p class="wp-block-paragraph">其中 css 用來存放樣式檔、js 則是放置腳本程式，views 資料夾內存放頁面用的 PHP 樣板檔，進到 views 裡可以看見這些檔案</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="355" height="61" src="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-13.png" alt="" class="wp-image-1864" srcset="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-13.png 355w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-13-300x52.png 300w" sizes="auto, (max-width: 355px) 100vw, 355px" /></figure>



<p class="wp-block-paragraph">接著打開 welcome.blade.php 這個檔案，</p>



<p class="wp-block-paragraph">檔案內有一段程式碼長這樣</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="833" height="311" src="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-14.png" alt="" class="wp-image-1865" srcset="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-14.png 833w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-14-300x112.png 300w, https://www.foxdevelop.com/wp-content/uploads/2026/06/image-14-768x287.png 768w" sizes="auto, (max-width: 833px) 100vw, 833px" /></figure>



<p class="wp-block-paragraph">是不是很眼熟？這裡就是專案的 PHP 樣板程式。接下來我們實際動手修改看看</p>



<p class="wp-block-paragraph">舉例來說，我們找到頁面內的副標題區段：</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">p</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"subtitle"</span>&gt;</span>Your app is ready.<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span></code></span></pre>


<p class="wp-block-paragraph">在文字後面多加一段內容：</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">p</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"subtitle"</span>&gt;</span>Your app is ready.welcome to foxdevelop.com<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span></code></span></pre>


<p class="wp-block-paragraph">儲存檔案後，重新整理頁面 http://127.0.0.1:8000/</p>



<figure class="wp-block-image size-full"><img decoding="async" src="https://www.foxdevelop.com/wp-content/uploads/2026/06/image-15.png" alt="" class="wp-image-1862"/></figure>



<p class="wp-block-paragraph">此時就能看見畫面的副標題已經替換成我們剛才修改的文字，各位讀者可以自己跟著操作試試。NativePHP 不會綁定任何前端技術，不會限制你使用任何開發工具或框架，像是 Livewire、Vue、React、Svelte、HTMX 甚至 jQuery 全都能搭配使用。</p>



<p class="wp-block-paragraph">這堂課請大家先找到專案裡的 resources 資料夾，嘗試自行修改樣板內容，藉此熟悉 NativePHP 的基礎架構。後續章節我們會以這個 UI 介面為基礎，展開更詳細的完整教學。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh-tw/2026/06/16/resources-%e8%b3%87%e6%96%99%e5%a4%be/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>NativePHP 桌面版介紹與環境建置</title>
		<link>https://www.foxdevelop.com/zh-tw/2026/06/09/nativephp-%e6%a1%8c%e9%9d%a2%e7%89%88%e4%bb%8b%e7%b4%b9%e8%88%87%e7%92%b0%e5%a2%83%e5%bb%ba%e7%bd%ae/</link>
					<comments>https://www.foxdevelop.com/zh-tw/2026/06/09/nativephp-%e6%a1%8c%e9%9d%a2%e7%89%88%e4%bb%8b%e7%b4%b9%e8%88%87%e7%92%b0%e5%a2%83%e5%bb%ba%e7%bd%ae/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Tue, 09 Jun 2026 00:44:10 +0000</pubDate>
				<category><![CDATA[NativePHP 教學]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=1628</guid>

					<description><![CDATA[這是一套全新的框架，專為開發原生桌面應用程式所打造。無論你是資深開發人員或是入門新手，都能輕鬆上手使用 NativePHP 開發應用。全球越來越多開發者開始採用這項技術。透過 PHP 開發原生桌面軟體，你可以沿用原本熟悉的核心技術：HTML、CSS、JavaScript 以及 PHP 本身。]]></description>
										<content:encoded><![CDATA[

<p class="wp-block-paragraph">這是一套全新的框架，專為開發原生桌面應用程式所打造。無論你是資深開發人員或是入門新手，都能輕鬆上手使用 NativePHP 開發應用。全球越來越多開發者開始採用這項技術。透過 PHP 開發原生桌面軟體，你可以沿用原本熟悉的核心技術：HTML、CSS、JavaScript 以及 PHP 本身。</p>



<p class="wp-block-paragraph"><strong>為何選擇 PHP？</strong></p>



<p class="wp-block-paragraph">PHP 是一門發展超過三十年、技術極為成熟的程式語言，經過長期實務場域的驗證與優化。目前多數網站皆以 PHP 作為後端技術，其中全球使用最廣泛的開源網站建置工具 WordPress，更是 PHP 最具代表性的成功案例。過去 PHP 長期專注於網頁開發，如今隨著 NativePHP 這類專案出現，也正式拓展至桌面與行動應用開發領域。</p>



<p class="wp-block-paragraph"><strong>NativePHP 究竟是什麼？</strong></p>



<ul class="wp-block-list">
<li>一組實用函式庫，可讓 PHP 程式碼與底層作業系統無縫互動。</li>



<li>多項輔助工具，用來編譯與封裝完成後的原生應用程式。</li>



<li>獨立執行的靜態 PHP 執行環境，封裝後的應用程式可直接在各裝置執行，使用者無需手動額外安裝執行環境。</li>
</ul>



<p class="wp-block-paragraph"><strong>何謂 Laravel？</strong></p>



<p class="wp-block-paragraph">Laravel 是一套熱門的 PHP 框架。簡單來說，框架就是以 PHP 撰寫完成的現成開發架構；基於框架開發，能夠避免重複編寫基礎程式碼，大幅提升開發效率。</p>



<p class="wp-block-paragraph">和多數常見的桌面、行動開發框架不同，NativePHP <strong>並非原生介面框架</strong>，不會直接繪製作業系統原生介面控制項。它是以內嵌瀏覽器引擎作為執行基礎，這樣的設計讓你能夠自由選用各種前端技術組合：原生 HTML 與 CSS、React、Vue、Tailwind CSS、Bootstrap、Material UI 等皆完全支援。</p>



<p class="wp-block-paragraph">NativePHP 內建豐富功能，可滿足多數常見開發需求：</p>



<ul class="wp-block-list">
<li>原生視窗管理</li>



<li>系統與應用程式選單控制</li>



<li>本機檔案系統操作</li>



<li>內建 SQLite 資料庫整合</li>



<li>原生桌面推播通知</li>
</ul>



<p class="wp-block-paragraph"><strong>使用 NativePHP 能夠開發哪些類型的應用？</strong></p>



<p class="wp-block-paragraph">幾乎所有你能想到的類型都可行，例如行程排程工具、螢幕錄影軟體以及各式各樣的桌面實用工具。</p>



<p class="wp-block-paragraph">桌面版 NativePHP <strong>已正式上線，可直接用於商業正式環境</strong>。</p>



<h3 class="wp-block-heading">環境建置與安裝</h3>



<p class="wp-block-paragraph">請確認本機環境符合以下所有必備條件：</p>



<ol class="wp-block-list">
<li><a href="https://www.foxdevelop.com/2026/05/27/%e5%ae%89%e8%a3%85php%e7%8e%af%e5%a2%83/">PHP 8.3 以上版本</a></li>



<li><a href="https://www.foxdevelop.com/2026/05/27/nativephp%e5%bf%ab%e9%80%9f%e4%b8%8a%e6%89%8b-laravel%e7%9a%84%e5%ae%89%e8%a3%85/">Laravel 11 以上版本</a></li>



<li><a href="https://nodejs.org/">Node.js 22 以上版本</a></li>



<li>Windows 10、macOS 12 或其他主流 Linux 發行版</li>



<li><a href="https://www.foxdevelop.com/2026/05/27/%e5%ae%89%e8%a3%85php%e7%9a%84%e5%8c%85%e7%ae%a1%e7%90%86%e5%99%a8composer/">Composer</a></li>
</ol>



<p class="wp-block-paragraph"><strong>關於 PHP 與 Node.js</strong></p>



<p class="wp-block-paragraph">為確保開發流程順暢，建議直接在本機開發電腦安裝 PHP 與 Node.js。</p>



<p class="wp-block-paragraph"><strong>為什麼需要安裝 Node.js？</strong></p>



<p class="wp-block-paragraph">桌面版 NativePHP 基於 <strong>Electron</strong> 開發，而 Electron 必須依賴 <strong>Node.js 與 npm</strong> 來安裝前端相依套件，並封裝最終的應用程式資源檔。</p>



<p class="wp-block-paragraph">安裝 Node.js 相當簡單：前往官方網站下載安裝程式，接著按照一般桌面軟體的安裝精靈步驟執行即可。</p>



<p class="wp-block-paragraph">依照上方清單完成開發環境設定後，下一單元就會開始引導你建立第一支 NativePHP 桌面應用程式。</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="541" height="358" src="https://www.foxdevelop.com/wp-content/uploads/2026/06/20260602104217.png" alt="" class="wp-image-266" srcset="https://www.foxdevelop.com/wp-content/uploads/2026/06/20260602104217.png 541w, https://www.foxdevelop.com/wp-content/uploads/2026/06/20260602104217-300x199.png 300w" sizes="auto, (max-width: 541px) 100vw, 541px" /></figure>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh-tw/2026/06/09/nativephp-%e6%a1%8c%e9%9d%a2%e7%89%88%e4%bb%8b%e7%b4%b9%e8%88%87%e7%92%b0%e5%a2%83%e5%bb%ba%e7%bd%ae/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>建立你的第一個 NativePHP 專案</title>
		<link>https://www.foxdevelop.com/zh-tw/2026/06/08/%e5%bb%ba%e7%ab%8b%e4%bd%a0%e7%9a%84%e7%ac%ac%e4%b8%80%e5%80%8b-nativephp-%e5%b0%88%e6%a1%88/</link>
					<comments>https://www.foxdevelop.com/zh-tw/2026/06/08/%e5%bb%ba%e7%ab%8b%e4%bd%a0%e7%9a%84%e7%ac%ac%e4%b8%80%e5%80%8b-nativephp-%e5%b0%88%e6%a1%88/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Mon, 08 Jun 2026 13:36:21 +0000</pubDate>
				<category><![CDATA[NativePHP 教學]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=1599</guid>

					<description><![CDATA[各位好，如果你來到這個章節，想必已經完成前面的課程。若尚未學習，請先回顧我們先前的教學：]]></description>
										<content:encoded><![CDATA[

<p class="wp-block-paragraph">各位好，如果你來到這個章節，想必已經完成前面的課程。若尚未學習，請先回顧我們先前的教學：<a href="https://www.foxdevelop.com/2026/05/27/nativephp%e5%bf%ab%e9%80%9f%e4%b8%8a%e6%89%8b-laravel%e7%9a%84%e5%ae%89%e8%a3%85/">NativePHP 快速入門 &#8211; 安裝 Laravel &#8211; FoxDevelop</a>。接下來我們將一步步建立第一個專案。</p>



<p class="wp-block-paragraph">我們會從零開始，全新建立一個專案：</p>



<p class="wp-block-paragraph">在電腦上建立空白資料夾來存放專案檔案，範例：D:\phpproject</p>



<p class="wp-block-paragraph">快速在此路徑開啟命令提示字元：直接在資料夾網址列輸入 cmd 後按下 Enter，視窗就會自動開啟並切換至該目錄。</p>



<p class="wp-block-paragraph">執行以下指令：</p>


<pre class="wp-block-code"><span><code class="hljs">composer create-project --prefer-dist nativephp/mobile-starter my-app
cd my-app
php artisan native:jump</code></span></pre>


<h3 class="wp-block-heading">快速問題排除（若你使用 PHP 8.3 可略過此段落）</h3>


<pre class="wp-block-code"><span><code class="hljs language-javascript">composer create-project --prefer-dist nativephp/mobile-starter my-app
Creating a <span class="hljs-string">"nativephp/mobile-starter"</span> project at <span class="hljs-string">"./my-app"</span>
Installing nativephp/mobile-starter (<span class="hljs-number">1.0</span><span class="hljs-number">.4</span>)
  - Downloading nativephp/mobile-starter (<span class="hljs-number">1.0</span><span class="hljs-number">.4</span>)
  - Installing nativephp/mobile-starter (<span class="hljs-number">1.0</span><span class="hljs-number">.4</span>): Extracting archive
Created project <span class="hljs-keyword">in</span> D:\phpproject\my-app
&gt; @php -r <span class="hljs-string">"file_exists('.env') || copy('.env.example', '.env');"</span>
Loading composer repositories <span class="hljs-keyword">with</span> package information
Updating dependencies
Your requirements could not be resolved to an installable <span class="hljs-keyword">set</span> of packages.

  Problem 1
    - Root composer.json requires nativephp/mobile ^3.0 -&gt; satisfiable by nativephp/mobile&#91;3.0.0, ..., 3.3.5].
    - nativephp/mobile&#91;3.0.0, ..., 3.3.5] require php ^8.3 -&gt; your php version (8.2.31) does not satisfy that requirement.</code></span></pre>


<p class="wp-block-paragraph">發生此錯誤是因為本機 PHP 版本為 8.2，必須升級至 PHP 8.3 才能繼續作業。</p>



<p class="wp-block-paragraph"><a href="https://windows.php.net/download#php-8.3">https://windows.php.net/download#php-8.3</a></p>



<p class="wp-block-paragraph">前往該網頁下載 PHP 8.3。Windows 64 位元使用者可直接取用下方安裝套件：</p>



<p class="wp-block-paragraph"><a href="https://downloads.php.net/~windows/releases/archives/php-8.3.31-nts-Win32-vs16-x64.zip">https://downloads.php.net/~windows/releases/archives/php-8.3.31-nts-Win32-vs16-x64.zip</a></p>



<p class="wp-block-paragraph">下載完成後，將所有檔案解壓縮至 D:\php8.3。你也可以自訂路徑，僅需確認路徑全部使用英文字元即可。</p>



<p class="wp-block-paragraph">解壓縮完畢後，重新命名設定檔：<br>將 php.ini-development 更名為 php.ini</p>



<p class="wp-block-paragraph">開啟 php.ini，刪除開頭的分號以取消註解：</p>



<p class="wp-block-paragraph"><strong>移除以下所有項目的分號註解（此步驟至關重要）：</strong></p>



<ol class="wp-block-list">
<li></li>
</ol>


<pre class="wp-block-code"><span><code class="hljs language-javascript">extension_dir = <span class="hljs-string">"ext"</span>
extension=curl
extension=gd
extension=mbstring
extension=mysqli
extension=pdo_mysql
extension=zip
extension=openssl
extension=fileinfo
extension=sqlite3
extension=pdo_sqlite</code></span></pre>


<p class="wp-block-paragraph">更新系統環境變數，將舊的 D:\php8.2 路徑替換為 D:\php8.3。</p>



<p class="wp-block-paragraph">執行 php -v 確認 PHP 版本，版本無誤後即可繼續建立專案。</p>



<h3 class="wp-block-heading">繼續建立 NativePHP 行動裝置專案</h3>



<p class="wp-block-paragraph">現在再次執行安裝指令：</p>


<pre class="wp-block-code"><span><code class="hljs">composer create-project --prefer-dist nativephp/mobile-starter my-app
cd my-app</code></span></pre>


<p class="wp-block-paragraph">安裝成功時，終端機不會出現任何紅色錯誤訊息。</p>



<p class="wp-block-paragraph">若要在實體手機測試，請先透過 USB 將裝置連接電腦，接著在手機中開啟開發人員選項與 USB 偵錯模式。</p>



<p class="wp-block-paragraph">使用下方指令快速在實體裝置測試（<strong>實機快速啟動：</strong>在手機安裝 Jump 應用程式，掃描 QR Code 即可連線偵錯，無需完整編譯 APK）：</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-tag">php</span> <span class="hljs-selector-tag">artisan</span> <span class="hljs-selector-tag">native</span><span class="hljs-selector-pseudo">:jump</span></code></span></pre>


<p class="wp-block-paragraph">若沒有實體行動裝置，可改用下列指令在模擬器測試：</p>



<p class="wp-block-paragraph">php artisan native:serve ：適用桌面預覽或模擬器測試（會在電腦開啟獨立應用視窗）</p>



<p class="wp-block-paragraph">執行 php artisan native:jump 且一切正常運作時，你會看到類似以下的執行結果</p>



<p class="wp-block-paragraph">php artisan native:jump</p>



<p class="wp-block-paragraph">NativePHP Jump 伺服器</p>



<p class="wp-block-paragraph">Laravel 伺服器 ……………………………………………………………………. http://127.0.0.1:8000<br>Laravel 載入完成 ………………………………………………………………… 耗時 0.42 秒 (HTTP 200)</p>



<p class="wp-block-paragraph">使用瀏覽器開啟 <a href="http://127.0.0.1:8000">http://127.0.0.1:8000</a> 即可檢視執行中的應用內容。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="486" height="573" src="https://www.foxdevelop.com/wp-content/uploads/2026/05/10.png" alt="" class="wp-image-257" srcset="https://www.foxdevelop.com/wp-content/uploads/2026/05/10.png 486w, https://www.foxdevelop.com/wp-content/uploads/2026/05/10-254x300.png 254w" sizes="auto, (max-width: 486px) 100vw, 486px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh-tw/2026/06/08/%e5%bb%ba%e7%ab%8b%e4%bd%a0%e7%9a%84%e7%ac%ac%e4%b8%80%e5%80%8b-nativephp-%e5%b0%88%e6%a1%88/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Getting Started with NativePHP: Install Laravel</title>
		<link>https://www.foxdevelop.com/zh-tw/2026/06/08/getting-started-with-nativephp-install-laravel-2/</link>
					<comments>https://www.foxdevelop.com/zh-tw/2026/06/08/getting-started-with-nativephp-install-laravel-2/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Mon, 08 Jun 2026 10:09:47 +0000</pubDate>
				<category><![CDATA[NativePHP 教學]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=1545</guid>

					<description><![CDATA[NativePHP 可讓你無需耗費大量時間設定 Xcode  ...]]></description>
										<content:encoded><![CDATA[

<p class="wp-block-paragraph">NativePHP 可讓你無需耗費大量時間設定 Xcode 或 Android Studio。你只需要在 iOS 或 Android 裝置安裝 Jump 應用程式即可。</p>



<p class="wp-block-paragraph"><a href="https://laravel.com/">Laravel &#8211; 開發者專用的精簡開發框架</a></p>



<p class="wp-block-paragraph"><strong>執行下列指令以建立全新 Laravel 專案</strong></p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">laravel <span class="hljs-keyword">new</span> my-app --using=nativephp/mobile-starter
 
cd my-app
 
php artisan native:jump</code></span></pre>


<p class="wp-block-paragraph">備註：執行這些指令前，請先安裝好 Laravel。</p>



<h5 class="wp-block-heading">如何安裝 <strong>Laravel</strong>？</h5>



<p class="wp-block-paragraph"><strong>Laravel 到底是什麼？</strong></p>



<p class="wp-block-paragraph">Laravel 是一款人氣極高、易於使用的 PHP 網站框架。內建帳號登入與註冊、檔案上傳、信件發送、資料庫操作及表單驗證等工具，能大幅加快 PHP 開發速度。</p>



<p class="wp-block-paragraph">由於 Laravel 仰賴 PHP 執行，請先完成 PHP 環境建置。另外請留意版本規範，舊版 PHP 無法執行新版 <strong>Laravel</strong>。</p>



<p class="wp-block-paragraph"><strong>PHP 版本 ≥ 8.1</strong>（建議使用 8.2 ~ 8.4）</p>



<p class="wp-block-paragraph"><strong>安裝 PHP</strong></p>



<p class="wp-block-paragraph">請參考這篇專屬教學來安裝 PHP：</p>



<p class="wp-block-paragraph"><a href="/2026/05/27/%e5%ae%89%e8%a3%85php%e7%8e%af%e5%a2%83/" target="_blank" rel="noreferrer noopener">安裝 PHP 環境 – FoxDevelop</a></p>



<h5 class="wp-block-heading">安裝 Composer</h5>



<p class="wp-block-paragraph">Composer 是 PHP 的套件管理工具，類似 .NET 的 NuGet 或是 Java 的 Maven、Gradle。</p>



<p class="wp-block-paragraph">安裝步驟請參考另一篇獨立教學。</p>



<p class="wp-block-paragraph"><a href="https://www.foxdevelop.com/2026/05/27/%E5%AE%89%E8%A3%85php%E7%9A%84%E5%8C%85%E7%AE%A1%E7%90%86%E5%99%A8composer/">安裝 PHP 套件管理工具 Composer – FoxDevelop</a></p>



<p class="wp-block-paragraph">確認 PHP 與 Composer 皆安裝完成後，接下來就能開始安裝 Laravel。</p>



<p class="wp-block-paragraph">開啟命令提示字元，先檢查軟體版本。</p>



<p class="wp-block-paragraph">PHP 版本需求：<strong>PHP ≥ 8.1</strong>（優選 8.2 / 8.5），執行 php -v 查看版本</p>



<p class="wp-block-paragraph">Composer 版本需求：<strong>Composer ≥ 2.5</strong>，執行 composer -V 查看版本</p>



<p class="wp-block-paragraph">接著檢查必要的 PHP 擴充功能：</p>



<p class="wp-block-paragraph">php -m | findstr mbstring<br>php -m | findstr openssl<br>php -m | findstr pdo</p>



<p class="wp-block-paragraph">中國地區使用者可切換至阿里雲鏡像來解決下載緩慢問題。請在命令提示字元貼上以下指令：</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">composer config -g repo.packagist composer https:<span class="hljs-comment">//mirrors.aliyun.com/composer/</span></code></span></pre>


<p class="wp-block-paragraph">接著使用 create-project 指令開始安裝：</p>


<pre class="wp-block-code"><span><code class="hljs">composer create-project laravel/laravel myproject
cd myproject</code></span></pre>


<p class="wp-block-paragraph"><strong><mark style="background-color:#cf2e2e" class="has-inline-color">這裡因為缺少 zip 擴充功能而出現錯誤</mark></strong>。如果你的安裝流程順利，可跳過下方除錯步驟，直接前往<a href="#again" data-type="internal" data-id="#again">此處</a>。</p>



<p class="wp-block-paragraph">錯誤訊息如下：</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">C:\Users\xxxx&gt;composer create-project laravel/laravel myproject
Creating a <span class="hljs-string">"laravel/laravel"</span> project at <span class="hljs-string">"./myproject"</span>
Installing laravel/laravel (v12<span class="hljs-number">.10</span><span class="hljs-number">.0</span>)
    Failed to download laravel/laravel <span class="hljs-keyword">from</span> dist: The zip extension and unzip/<span class="hljs-number">7</span>z commands are both missing, skipping.
The php.ini used by your command-line PHP is: D:\php8<span class="hljs-number">.2</span>\php.ini
    Now trying to download <span class="hljs-keyword">from</span> source
  - Syncing laravel/laravel (v12<span class="hljs-number">.10</span><span class="hljs-number">.0</span>) into cache</code></span></pre>


<p class="wp-block-paragraph">在命令提示字元執行下列指令，確認 zip 擴充功能未安裝：</p>


<pre class="wp-block-code"><span><code class="hljs">php -m | findstr zip</code></span></pre>


<p class="wp-block-paragraph">若沒有任何輸出，代表 zip 擴充功能尚未啟用。</p>



<h3 class="wp-block-heading">編輯 php.ini 以啟用 zip 擴充功能</h3>



<p class="wp-block-paragraph">我的 PHP 設定檔路徑：<strong>D:\php8.2\php.ini</strong></p>



<p class="wp-block-paragraph">找到 <code>;extension=zip</code>，刪除開頭的分號。</p>



<p class="wp-block-paragraph">再次在命令提示字元執行 php -m | findstr zip，出現內容即代表擴充功能已正常啟用。</p>



<p class="wp-block-paragraph" id="again">隨後重新執行安裝作業</p>



<p class="wp-block-paragraph">再次執行安裝指令：</p>


<pre class="wp-block-code"><span><code class="hljs">composer create-project laravel/laravel myproject</code></span></pre>


<p class="wp-block-paragraph">安裝再度失敗，執行紀錄如下：</p>


<pre class="wp-block-code"><span><code class="hljs language-php">composer create-project laravel/laravel myproject
Creating a <span class="hljs-string">"laravel/laravel"</span> project at <span class="hljs-string">"./myproject"</span>
Installing laravel/laravel (v12<span class="hljs-number">.10</span><span class="hljs-number">.0</span>)
  - Downloading laravel/laravel (v12<span class="hljs-number">.10</span><span class="hljs-number">.0</span>)
    Failed downloading laravel/laravel, trying the next URL (<span class="hljs-number">404</span>: The <span class="hljs-string">"https://mirrors.aliyun.com/composer/dists/laravel/laravel/76396a056d552b8a34077f151775037ac44b431a.zip"</span> file could not be downloaded (HTTP/<span class="hljs-number">2</span> <span class="hljs-number">404</span> ))
  - Downloading laravel/laravel (v12<span class="hljs-number">.10</span><span class="hljs-number">.0</span>)
  - Installing laravel/laravel (v12<span class="hljs-number">.10</span><span class="hljs-number">.0</span>): Extracting archive
Created project in C:\Users\maiwu\myproject
&gt; @php -r <span class="hljs-string">"file_exists('.env') || copy('.env.example', '.env');"</span>
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem <span class="hljs-number">1</span>
    - Root composer.json requires laravel/tinker ^<span class="hljs-number">2.10</span><span class="hljs-number">.1</span>, it is satisfiable by laravel/tinker&#91;v2<span class="hljs-number">.10</span><span class="hljs-number">.1</span>, v2<span class="hljs-number">.10</span><span class="hljs-number">.2</span>, v2<span class="hljs-number">.11</span><span class="hljs-number">.0</span>, v2<span class="hljs-number">.11</span><span class="hljs-number">.1</span>] from composer repo (https:<span class="hljs-comment">//repo.packagist.org) but laravel/tinker&#91;2.x-dev] from composer repo (https://mirrors.aliyun.com/composer) has higher repository priority. The packages from the higher priority repository do not match your minimum-stability and are therefore not installable. That repository is canonical so the lower priority repo's packages are not installable. See https://getcomposer.org/repoprio for details and assistance.</span>
  Problem <span class="hljs-number">2</span>
    - Root composer.json requires phpunit/phpunit ^<span class="hljs-number">11.5</span><span class="hljs-number">.3</span>, found phpunit/phpunit&#91;<span class="hljs-number">11.5</span><span class="hljs-number">.3</span>, ..., <span class="hljs-number">11.5</span><span class="hljs-number">.44</span>] but these were not loaded, because they are affected by security advisories (<span class="hljs-string">"PKSA-z3gr-8qht-p93v"</span>, <span class="hljs-string">"PKSA-z3gr-8qht-p93v"</span>). Go to https:<span class="hljs-comment">//packagist.org/security-advisories/ to find advisory details. To ignore the advisories, add them to the audit "ignore" config. To turn the feature off entirely, you can set "block-insecure" to false in your "audit" config.</span>
  Problem <span class="hljs-number">3</span>
    - Root composer.json requires laravel/sail ^<span class="hljs-number">1.41</span> -&gt; satisfiable by laravel/sail&#91;v1<span class="hljs-number">.41</span><span class="hljs-number">.0</span>, ..., v1<span class="hljs-number">.46</span><span class="hljs-number">.0</span>].
    - laravel/sail&#91;v1<span class="hljs-number">.41</span><span class="hljs-number">.0</span>, ..., v1<span class="hljs-number">.46</span><span class="hljs-number">.0</span>] <span class="hljs-keyword">require</span> symfony/yaml ^<span class="hljs-number">6.0</span>|^<span class="hljs-number">7.0</span> -&gt; found symfony/yaml&#91;v6<span class="hljs-number">.0</span><span class="hljs-number">.0</span>, ..., v6<span class="hljs-number">.4</span><span class="hljs-number">.30</span>, v7<span class="hljs-number">.0</span><span class="hljs-number">.0</span>, ..., v7<span class="hljs-number">.4</span><span class="hljs-number">.1</span>] but these were not loaded, because they are affected by security advisories (<span class="hljs-string">"PKSA-v5yj-8nmz-sk2q"</span>, <span class="hljs-string">"PKSA-ft77-7h5f-p3r6"</span>, <span class="hljs-string">"PKSA-b14r-zh1d-vdrc"</span>, <span class="hljs-string">"PKSA-v5yj-8nmz-sk2q"</span>, <span class="hljs-string">"PKSA-ft77-7h5f-p3r6"</span>, <span class="hljs-string">"PKSA-b14r-zh1d-vdrc"</span>). Go to https:<span class="hljs-comment">//packagist.org/security-advisories/ to find advisory details. To ignore the advisories, add them to the audit "ignore" config. To turn the feature off entirely, you can set "block-insecure" to false in your "audit" config.</span>
  Problem <span class="hljs-number">4</span>
    - Root composer.json requires laravel/framework ^<span class="hljs-number">12.0</span> -&gt; satisfiable by laravel/framework&#91;v12<span class="hljs-number">.1</span><span class="hljs-number">.1</span>, ..., v12<span class="hljs-number">.40</span><span class="hljs-number">.0</span>].
    - laravel/framework&#91;v12<span class="hljs-number">.1</span><span class="hljs-number">.1</span>, ..., v12<span class="hljs-number">.12</span><span class="hljs-number">.0</span>] <span class="hljs-keyword">require</span> league/commonmark ^<span class="hljs-number">2.6</span> -&gt; found league/commonmark&#91;<span class="hljs-number">2.6</span><span class="hljs-number">.0</span>] but these were not loaded, because they are affected by security advisories (<span class="hljs-string">"PKSA-21fb-n1x5-5nf7"</span>, <span class="hljs-string">"PKSA-2cx9-ynrq-qdk3"</span>, <span class="hljs-string">"PKSA-rqc2-tcc6-nc79"</span>, <span class="hljs-string">"PKSA-21fb-n1x5-5nf7"</span>, <span class="hljs-string">"PKSA-2cx9-ynrq-qdk3"</span>, <span class="hljs-string">"PKSA-rqc2-tcc6-nc79"</span>). Go to https:<span class="hljs-comment">//packagist.org/security-advisories/ to find advisory details. To ignore the advisories, add them to the audit "ignore" config. To turn the feature off entirely, you can set "block-insecure" to false in your "audit" config.</span>
    - laravel/framework&#91;v12<span class="hljs-number">.13</span><span class="hljs-number">.0</span>, ..., v12<span class="hljs-number">.40</span><span class="hljs-number">.0</span>] <span class="hljs-keyword">require</span> league/commonmark ^<span class="hljs-number">2.7</span> -&gt; satisfiable by league/commonmark&#91;<span class="hljs-number">2.7</span><span class="hljs-number">.0</span>, ..., <span class="hljs-number">2.8</span><span class="hljs-number">.2</span>] from composer repo (https:<span class="hljs-comment">//repo.packagist.org) but league/commonmark&#91;dev-main, 2.7.x-dev, 2.8.x-dev, 2.9.x-dev (alias of dev-main)] from composer repo (https://mirrors.aliyun.com/composer) has higher repository priority. The packages from the higher priority repository do not match your minimum-stability and are therefore not installable. That repository is canonical so the lower priority repo's packages are not installable. See https://getcomposer.org/repoprio for details and assistance.</span></code></span></pre>


<p class="wp-block-paragraph">原因：阿里雲 Composer 鏡像站點異常。</p>



<p class="wp-block-paragraph">先刪除異常的專案資料夾，再切換回官方來源：</p>


<pre class="wp-block-code"><span><code class="hljs language-php">rmdir /s /q myproject
composer config -g --<span class="hljs-keyword">unset</span> repos.packagist
composer create-project laravel/laravel myproject --no-audit</code></span></pre>


<p class="wp-block-paragraph">安裝依然失敗，請再次清理殘留檔案：</p>


<pre class="wp-block-code"><span><code class="hljs language-php">- Downloading phpunit/php-code-coverage (<span class="hljs-number">11.0</span><span class="hljs-number">.12</span>)
  - Downloading phar-io/version (<span class="hljs-number">3.2</span><span class="hljs-number">.1</span>)
  - Downloading phar-io/manifest (<span class="hljs-number">2.0</span><span class="hljs-number">.4</span>)
  - Downloading myclabs/deep-copy (<span class="hljs-number">1.13</span><span class="hljs-number">.4</span>)
  - Downloading phpunit/phpunit (<span class="hljs-number">11.5</span><span class="hljs-number">.55</span>)
 <span class="hljs-number">110</span>/<span class="hljs-number">111</span> &#91;===========================&gt;]  <span class="hljs-number">99</span>%A connection timeout was encountered. <span class="hljs-keyword">If</span> you intend to run Composer without connecting to the internet, run the command again prefixed with COMPOSER_DISABLE_NETWORK=<span class="hljs-number">1</span> to make Composer run in offline mode.
    Failed to download laravel/pint from dist: The <span class="hljs-string">"https://codeload.github.com/laravel/pint/legacy.zip/0770e9b7fafd50d4586881d456d6eb41c9247a80"</span> file could not be written to C:\Users\maiwu\myproject/vendor/composer/tmp<span class="hljs-number">-60</span>f6b8b4815321558e13bb1ac74423ee.zip: Failed to open stream: Permission denied
    Now trying to download from source
  - Syncing laravel/pint (v1<span class="hljs-number">.29</span><span class="hljs-number">.1</span>) into cache
Cloning failed using an ssh key <span class="hljs-keyword">for</span> authentication, enter your GitHub credentials to access <span class="hljs-keyword">private</span> repos
You need to provide a GitHub access token.
Tokens will be stored in plain text in <span class="hljs-string">"C:/Users/maiwu/AppData/Roaming/Composer/auth.json"</span> <span class="hljs-keyword">for</span> future <span class="hljs-keyword">use</span> <span class="hljs-title">by</span> <span class="hljs-title">Composer</span>.
<span class="hljs-title">Due</span> <span class="hljs-title">to</span> <span class="hljs-title">the</span> <span class="hljs-title">security</span> <span class="hljs-title">risk</span> <span class="hljs-title">of</span> <span class="hljs-title">tokens</span> <span class="hljs-title">being</span> <span class="hljs-title">exfiltrated</span>, <span class="hljs-title">use</span> <span class="hljs-title">tokens</span> <span class="hljs-title">with</span> <span class="hljs-title">short</span> <span class="hljs-title">expiration</span> <span class="hljs-title">times</span> <span class="hljs-title">and</span> <span class="hljs-title">only</span> <span class="hljs-title">the</span> <span class="hljs-title">minimum</span> <span class="hljs-title">permissions</span> <span class="hljs-title">necessary</span>.

<span class="hljs-title">Carefully</span> <span class="hljs-title">consider</span> <span class="hljs-title">the</span> <span class="hljs-title">following</span> <span class="hljs-title">options</span> <span class="hljs-title">in</span> <span class="hljs-title">order</span>:

1. <span class="hljs-title">When</span> <span class="hljs-title">you</span> <span class="hljs-title">don</span>'<span class="hljs-title">t</span> <span class="hljs-title">use</span> '<span class="hljs-title">vcs</span>'  <span class="hljs-title">type</span> '<span class="hljs-title">repositories</span>'  <span class="hljs-title">in</span> <span class="hljs-title">composer</span>.<span class="hljs-title">json</span> <span class="hljs-title">and</span> <span class="hljs-title">do</span> <span class="hljs-title">not</span> <span class="hljs-title">need</span> <span class="hljs-title">to</span> <span class="hljs-title">clone</span> <span class="hljs-title">source</span> <span class="hljs-title">or</span> <span class="hljs-title">download</span> <span class="hljs-title">dist</span> <span class="hljs-title">files</span>
<span class="hljs-title">from</span> <span class="hljs-title">private</span> <span class="hljs-title">GitHub</span> <span class="hljs-title">repositories</span> <span class="hljs-title">over</span> <span class="hljs-title">HTTPS</span>, <span class="hljs-title">use</span> <span class="hljs-title">a</span> <span class="hljs-title">fine</span>-<span class="hljs-title">grained</span> <span class="hljs-title">token</span> <span class="hljs-title">with</span> <span class="hljs-title">read</span>-<span class="hljs-title">only</span> <span class="hljs-title">access</span> <span class="hljs-title">to</span> <span class="hljs-title">public</span> <span class="hljs-title">information</span>.
<span class="hljs-title">Use</span> <span class="hljs-title">the</span> <span class="hljs-title">following</span> <span class="hljs-title">URL</span> <span class="hljs-title">to</span> <span class="hljs-title">create</span> <span class="hljs-title">such</span> <span class="hljs-title">a</span> <span class="hljs-title">token</span>:
<span class="hljs-title">https</span>://<span class="hljs-title">github</span>.<span class="hljs-title">com</span>/<span class="hljs-title">settings</span>/<span class="hljs-title">personal</span>-<span class="hljs-title">access</span>-<span class="hljs-title">tokens</span>/<span class="hljs-title">new</span>?<span class="hljs-title">name</span>=<span class="hljs-title">Composer</span>+<span class="hljs-title">on</span>+<span class="hljs-title">DESKTOP</span>-1<span class="hljs-title">OHC5Q4</span>+2026-05-27+0946

2. <span class="hljs-title">When</span> <span class="hljs-title">all</span> <span class="hljs-title">relevant</span> <span class="hljs-title">_private_</span> <span class="hljs-title">GitHub</span> <span class="hljs-title">repositories</span> <span class="hljs-title">belong</span> <span class="hljs-title">to</span> <span class="hljs-title">a</span> <span class="hljs-title">single</span> <span class="hljs-title">user</span> <span class="hljs-title">or</span> <span class="hljs-title">organisation</span>, <span class="hljs-title">use</span> <span class="hljs-title">a</span> <span class="hljs-title">fine</span>-<span class="hljs-title">grained</span> <span class="hljs-title">token</span> <span class="hljs-title">with</span>
<span class="hljs-title">repository</span> "<span class="hljs-title">content</span>" <span class="hljs-title">read</span>-<span class="hljs-title">only</span> <span class="hljs-title">permissions</span>. <span class="hljs-title">You</span> <span class="hljs-title">can</span> <span class="hljs-title">start</span> <span class="hljs-title">with</span> <span class="hljs-title">the</span> <span class="hljs-title">following</span> <span class="hljs-title">URL</span>, <span class="hljs-title">but</span> <span class="hljs-title">you</span> <span class="hljs-title">may</span> <span class="hljs-title">need</span> <span class="hljs-title">to</span> <span class="hljs-title">change</span> <span class="hljs-title">the</span> <span class="hljs-title">resource</span> <span class="hljs-title">owner</span>
<span class="hljs-title">to</span> <span class="hljs-title">the</span> <span class="hljs-title">right</span> <span class="hljs-title">user</span> <span class="hljs-title">or</span> <span class="hljs-title">organisation</span>. <span class="hljs-title">Additionally</span>, <span class="hljs-title">you</span> <span class="hljs-title">can</span> <span class="hljs-title">scope</span> <span class="hljs-title">permissions</span> <span class="hljs-title">down</span> <span class="hljs-title">to</span> <span class="hljs-title">apply</span> <span class="hljs-title">only</span> <span class="hljs-title">to</span> <span class="hljs-title">selected</span> <span class="hljs-title">repositories</span>.
<span class="hljs-title">https</span>://<span class="hljs-title">github</span>.<span class="hljs-title">com</span>/<span class="hljs-title">settings</span>/<span class="hljs-title">personal</span>-<span class="hljs-title">access</span>-<span class="hljs-title">tokens</span>/<span class="hljs-title">new</span>?<span class="hljs-title">contents</span>=<span class="hljs-title">read</span>&amp;<span class="hljs-title">name</span>=<span class="hljs-title">Composer</span>+<span class="hljs-title">on</span>+<span class="hljs-title">DESKTOP</span>-1<span class="hljs-title">OHC5Q4</span>+2026-05-27+0946

3. <span class="hljs-title">A</span> "<span class="hljs-title">classic</span>" <span class="hljs-title">token</span> <span class="hljs-title">grants</span> <span class="hljs-title">broad</span> <span class="hljs-title">permissions</span> <span class="hljs-title">on</span> <span class="hljs-title">your</span> <span class="hljs-title">behalf</span> <span class="hljs-title">to</span> <span class="hljs-title">all</span> <span class="hljs-title">repositories</span> <span class="hljs-title">accessible</span> <span class="hljs-title">by</span> <span class="hljs-title">you</span>.
<span class="hljs-title">This</span> <span class="hljs-title">may</span> <span class="hljs-title">include</span> <span class="hljs-title">write</span> <span class="hljs-title">permissions</span>, <span class="hljs-title">even</span> <span class="hljs-title">though</span> <span class="hljs-title">not</span> <span class="hljs-title">needed</span> <span class="hljs-title">by</span> <span class="hljs-title">Composer</span>. <span class="hljs-title">Use</span> <span class="hljs-title">it</span> <span class="hljs-title">only</span> <span class="hljs-title">when</span> <span class="hljs-title">you</span> <span class="hljs-title">need</span> <span class="hljs-title">to</span> <span class="hljs-title">access</span>
<span class="hljs-title">private</span> <span class="hljs-title">repositories</span> <span class="hljs-title">across</span> <span class="hljs-title">multiple</span> <span class="hljs-title">organisations</span> <span class="hljs-title">at</span> <span class="hljs-title">the</span> <span class="hljs-title">same</span> <span class="hljs-title">time</span> <span class="hljs-title">and</span> <span class="hljs-title">using</span> <span class="hljs-title">directory</span>-<span class="hljs-title">specific</span> <span class="hljs-title">authentication</span> <span class="hljs-title">sources</span>
<span class="hljs-title">is</span> <span class="hljs-title">not</span> <span class="hljs-title">an</span> <span class="hljs-title">option</span>. <span class="hljs-title">You</span> <span class="hljs-title">can</span> <span class="hljs-title">generate</span> <span class="hljs-title">a</span> <span class="hljs-title">classic</span> <span class="hljs-title">token</span> <span class="hljs-title">here</span>:
<span class="hljs-title">https</span>://<span class="hljs-title">github</span>.<span class="hljs-title">com</span>/<span class="hljs-title">settings</span>/<span class="hljs-title">tokens</span>/<span class="hljs-title">new</span>?<span class="hljs-title">scopes</span>=<span class="hljs-title">repo</span>&amp;<span class="hljs-title">description</span>=<span class="hljs-title">Composer</span>+<span class="hljs-title">on</span>+<span class="hljs-title">DESKTOP</span>-1<span class="hljs-title">OHC5Q4</span>+2026-05-27+0946

<span class="hljs-title">For</span> <span class="hljs-title">additional</span> <span class="hljs-title">information</span>, <span class="hljs-title">check</span> <span class="hljs-title">https</span>://<span class="hljs-title">getcomposer</span>.<span class="hljs-title">org</span>/<span class="hljs-title">doc</span>/<span class="hljs-title">articles</span>/<span class="hljs-title">authentication</span>-<span class="hljs-title">for</span>-<span class="hljs-title">private</span>-<span class="hljs-title">packages</span>.<span class="hljs-title">md</span>#<span class="hljs-title">github</span>-<span class="hljs-title">oauth</span>
<span class="hljs-title">Token</span> (<span class="hljs-title">hidden</span>):</code></span></pre>


<p class="wp-block-paragraph">接著執行修改後的安裝指令：</p>



<p class="wp-block-paragraph"></p>


<pre class="wp-block-code"><span><code class="hljs">composer create-project laravel/laravel myproject --no-dev --no-audit</code></span></pre>


<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">使用此指令安裝可避免跳出 GitHub 權杖提示，並略過額外相依套件：<br>加入 &#8211;no-dev 與 &#8211;no-audit 參數，跳過會觸發 GitHub 原始碼下載的 pint、phpunit 套件。</p>



<p class="wp-block-paragraph">出現類似以下內容即代表安裝成功：</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">- Installing league/commonmark (<span class="hljs-number">2.8</span><span class="hljs-number">.2</span>): Extracting archive
  - Installing laravel/framework (v12<span class="hljs-number">.61</span><span class="hljs-number">.0</span>): Extracting archive
<span class="hljs-number">75</span> package suggestions were added by <span class="hljs-keyword">new</span> dependencies, use <span class="hljs-string">`composer suggest`</span> to see details.
Package sebastian/code-unit is abandoned, you should avoid using it. No replacement was suggested.
Package sebastian/code-unit-reverse-lookup is abandoned, you should avoid using it. No replacement was suggested.
Generating optimized autoload files
&gt; Illuminate\Foundation\ComposerScripts::postAutoloadDump
&gt; @php artisan package:discover --ansi

   INFO  Discovering packages.

  laravel/tinker .............................................................................................................................. DONE
  nesbot/carbon ............................................................................................................................... DONE
  nunomaduro/termwind ......................................................................................................................... DONE</code></span></pre>


<p class="wp-block-paragraph">接下來測試剛建立的專案，上述指令會自動建立 myproject 資料夾並存放所有原始檔。</p>



<p class="wp-block-paragraph">在目前的命令提示字元視窗中執行以下兩行指令：</p>


<pre class="wp-block-code"><span><code class="hljs">cd myproject
php artisan serve</code></span></pre>


<p class="wp-block-paragraph">命令提示字元畫面會顯示如下：</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">C:\Users\xxxx&gt;cd myproject
<span class="hljs-attr">C</span>:\Users\xxxx\myproject&gt;php artisan serve
   INFO  Server running on &#91;http:<span class="hljs-comment">//127.0.0.1:8000].</span>
   Press Ctrl+C to stop the server
</code></span></pre>


<p class="wp-block-paragraph">將 <a href="http://127.0.0.1:8000">http://127.0.0.1:8000</a> 貼到瀏覽器網址列，即可看到 Laravel 預設首頁。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="995" height="455" src="https://www.foxdevelop.com/wp-content/uploads/2026/05/9.png" alt="" class="wp-image-222"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh-tw/2026/06/08/getting-started-with-nativephp-install-laravel-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>安裝 Composer，PHP 套件管理工具</title>
		<link>https://www.foxdevelop.com/zh-tw/2026/06/08/%e5%ae%89%e8%a3%9d-composer%ef%bc%8cphp-%e5%a5%97%e4%bb%b6%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7/</link>
					<comments>https://www.foxdevelop.com/zh-tw/2026/06/08/%e5%ae%89%e8%a3%9d-composer%ef%bc%8cphp-%e5%a5%97%e4%bb%b6%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Mon, 08 Jun 2026 09:48:21 +0000</pubDate>
				<category><![CDATA[NativePHP 教學]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=1517</guid>

					<description><![CDATA[Composer 是 PHP 官方的套件管理工具。使用瀏覽器前往此頁面]]></description>
										<content:encoded><![CDATA[

<p class="wp-block-paragraph">Composer 是 PHP 官方的套件管理工具。</p>



<p class="wp-block-paragraph">使用瀏覽器前往此頁面：<a href="https://link.wtturl.cn/?target=https%3A%2F%2Fgetcomposer.org%2Fdownload%2F&amp;scene=im&amp;aid=582478&amp;lang=zh" target="_blank" rel="noreferrer noopener">https://getcomposer.org/download/</a>，找到 <strong>Windows 安裝程式</strong> 並下載 Composer-Setup.exe 安裝檔。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="909" height="164" src="https://www.foxdevelop.com/wp-content/uploads/2026/05/20260527165519.png" alt="" class="wp-image-212"/></figure>



<p class="wp-block-paragraph">在安裝檔上按滑鼠右鍵，選擇以系統管理員身分執行。</p>



<p class="wp-block-paragraph">安裝程式會在設定過程中自動偵測 PHP 資料夾。若無法自動辨識路徑，請手動選取 PHP 目錄。</p>



<p class="wp-block-paragraph">此處維持核取方塊不勾選，接著直接使用預設設定並持續點選下一步。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="562" height="245" src="https://www.foxdevelop.com/wp-content/uploads/2026/05/20260527165910.png" alt="" class="wp-image-213"/></figure>



<p class="wp-block-paragraph">工具會嘗試自動選取 PHP 安裝目錄，若自動偵測失敗，請手動指定路徑。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="629" height="210" src="https://www.foxdevelop.com/wp-content/uploads/2026/05/20260527170048.png" alt="" class="wp-image-214"/></figure>



<p class="wp-block-paragraph">接下來會出現代理伺服器設定頁面，請直接跳過此步驟。</p>



<p class="wp-block-paragraph">持續點選下一步，直到出現完成按鈕，即可結束安裝程序。</p>



<p class="wp-block-paragraph">接著驗證安裝結果，開啟命令提示字元並執行下方指令：</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-tag">C</span>:\<span class="hljs-selector-tag">Users</span>\<span class="hljs-selector-tag">xxxx</span>&gt;<span class="hljs-selector-tag">composer</span> <span class="hljs-selector-tag">--version</span>
<span class="hljs-selector-tag">Composer</span> <span class="hljs-selector-tag">version</span> 2<span class="hljs-selector-class">.9</span><span class="hljs-selector-class">.8</span> 2026<span class="hljs-selector-tag">-05-13</span> 09<span class="hljs-selector-pseudo">:28</span><span class="hljs-selector-pseudo">:38</span>
<span class="hljs-selector-tag">PHP</span> <span class="hljs-selector-tag">version</span> 8<span class="hljs-selector-class">.2</span><span class="hljs-selector-class">.31</span> (<span class="hljs-selector-tag">D</span>:\<span class="hljs-selector-tag">php8</span><span class="hljs-selector-class">.2</span>\<span class="hljs-selector-tag">php</span><span class="hljs-selector-class">.exe</span>)
<span class="hljs-selector-tag">Run</span> <span class="hljs-selector-tag">the</span> "<span class="hljs-selector-tag">diagnose</span>" <span class="hljs-selector-tag">command</span> <span class="hljs-selector-tag">to</span> <span class="hljs-selector-tag">get</span> <span class="hljs-selector-tag">more</span> <span class="hljs-selector-tag">detailed</span> <span class="hljs-selector-tag">diagnostics</span> <span class="hljs-selector-tag">output</span>.</code></span></pre>


<p class="wp-block-paragraph">若畫面顯示如上範例的版本資訊，即代表安裝成功。至此 Composer 就已設定完畢。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh-tw/2026/06/08/%e5%ae%89%e8%a3%9d-composer%ef%bc%8cphp-%e5%a5%97%e4%bb%b6%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>設定 PHP 環境</title>
		<link>https://www.foxdevelop.com/zh-tw/2026/06/08/%e8%a8%ad%e5%ae%9a-php-%e7%92%b0%e5%a2%83-2/</link>
					<comments>https://www.foxdevelop.com/zh-tw/2026/06/08/%e8%a8%ad%e5%ae%9a-php-%e7%92%b0%e5%a2%83-2/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Mon, 08 Jun 2026 09:12:01 +0000</pubDate>
				<category><![CDATA[NativePHP 教學]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=1491</guid>

					<description><![CDATA[安裝 PHP 首先前往官方下載頁面取得 PHP： （建議版本）並下載 ZIP 壓縮檔。]]></description>
										<content:encoded><![CDATA[

<p class="wp-block-paragraph"><strong>安裝 PHP</strong></p>



<p class="wp-block-paragraph">首先前往官方下載頁面取得 PHP：<a href="https://windows.php.net/download/">https://windows.php.net/download/</a></p>



<p class="wp-block-paragraph">選擇 <strong>PHP 8.2</strong>（建議版本）並下載 ZIP 壓縮檔。</p>



<p class="wp-block-paragraph">你可以直接點擊此下載連結：<a href="https://www.php.net/downloads.php?os=windows&amp;osvariant=windows-downloads&amp;version=8.2">PHP：下載頁面</a></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="765" height="180" src="https://www.foxdevelop.com/wp-content/uploads/2026/05/20260527162530.png" alt="" class="wp-image-201"/></figure>



<p class="wp-block-paragraph">往下捲動頁面，點選 <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">zip</mark> 下載選項。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="742" height="437" src="https://www.foxdevelop.com/wp-content/uploads/2026/05/20260527162648.png" alt="" class="wp-image-203"/></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">為什麼不選 PHP 8.5？截至 2026 年，較新的 PHP 版本可能會與 Laravel 產生相容性問題。就學習用途來說，<strong>PHP 8.2</strong> 搭配 <strong>Laravel 12</strong> 是最佳組合；此組合執行穩定、錯誤少，且網路上有豐富的教學資源。待你完成本課程時，PHP 8.5 或許已趨於成熟，可依自身狀況調整版本。</p>
</blockquote>



<p class="wp-block-paragraph">下載完成後，解壓 php-8.2.31-nts-Win32-vs16-x64.zip 檔案並開始進行設定。</p>



<p class="wp-block-paragraph">將 <code>php-8.2.31-nts-Win32-vs16-x64.zip</code> 解壓縮至路徑簡短、不含中文字元與空格的資料夾，範例：D:\php8.2</p>



<p class="wp-block-paragraph">開啟解壓後的資料夾，會看見分別對應開發環境與正式環境的兩組設定檔。</p>



<p class="wp-block-paragraph">找到以下兩個檔案：</p>



<ul class="wp-block-list">
<li><code>php.ini-development</code>（本機開發專用）</li>



<li><code>php.ini-production</code>（線上伺服器專用，暫時不需更動）</li>
</ul>



<p class="wp-block-paragraph">先備份 <code>php.ini-development</code>，再將其中一份重新命名為 php.ini。</p>



<p class="wp-block-paragraph">使用記事本開啟 php.ini，修改數項參數設定。</p>



<ul class="wp-block-list">
<li>找到 ;extension_dir = &#8220;ext&#8221; 這一行，移除開頭的分號；</li>
</ul>



<ul class="wp-block-list">
<li>移除 Laravel 所需擴充功能前方的分號，啟用所有必要擴充：</li>
</ul>


<pre class="wp-block-code"><span><code class="hljs">extension=curl
extension=fileinfo
extension=mbstring
extension=openssl
extension=pdo_mysql</code></span></pre>


<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="733" height="391" src="https://www.foxdevelop.com/wp-content/uploads/2026/05/20260527163743.png" alt="" class="wp-image-204"/></figure>



<p class="wp-block-paragraph">儲存修改後的 php.ini 檔案。</p>



<p class="wp-block-paragraph">重要步驟：將 D:\php8.2 資料夾路徑新增至系統環境變數。</p>



<p class="wp-block-paragraph">從開始選單搜尋環境變數，接著編輯 Path 內容。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="520" height="560" src="https://www.foxdevelop.com/wp-content/uploads/2026/06/20260605103002.png" alt="" class="wp-image-432" srcset="https://www.foxdevelop.com/wp-content/uploads/2026/06/20260605103002.png 520w, https://www.foxdevelop.com/wp-content/uploads/2026/06/20260605103002-279x300.png 279w" sizes="auto, (max-width: 520px) 100vw, 520px" /></figure>



<p class="wp-block-paragraph">接下來驗證 PHP 安裝狀態，開啟一般命令提示字元視窗。</p>



<p class="wp-block-paragraph">執行指令：php -v</p>


<pre class="wp-block-code"><span><code class="hljs">php -v</code></span></pre>


<p class="wp-block-paragraph">若畫面上顯示 PHP 版本資訊，代表安裝作業順利完成。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="594" height="111" src="https://www.foxdevelop.com/wp-content/uploads/2026/05/20260527164442.png" alt="" class="wp-image-208"/></figure>



<p class="wp-block-paragraph">出現以上資訊即表示電腦中的 PHP 已正確安裝完畢。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh-tw/2026/06/08/%e8%a8%ad%e5%ae%9a-php-%e7%92%b0%e5%a2%83-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>NativePHP 入門：初步介紹</title>
		<link>https://www.foxdevelop.com/zh-tw/2026/06/07/nativephp-%e5%85%a5%e9%96%80%ef%bc%9a%e5%88%9d%e6%ad%a5%e4%bb%8b%e7%b4%b9/</link>
					<comments>https://www.foxdevelop.com/zh-tw/2026/06/07/nativephp-%e5%85%a5%e9%96%80%ef%bc%9a%e5%88%9d%e6%ad%a5%e4%bb%8b%e7%b4%b9/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Sun, 07 Jun 2026 10:11:52 +0000</pubDate>
				<category><![CDATA[NativePHP 教學]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=1292</guid>

					<description><![CDATA[顧名思義，NativePHP 就是原生 PHP，意指可在本機執行的 PHP 應用程式。長久以來，PHP 大多用於網頁開發，所有程式碼都在遠端伺服器上執行。NativePHP 徹底改變了這種運作模式，開發人員現在可以使用它來開發原生桌面軟體，以及適用於 Android 與 iOS 的行動應用程式。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">顧名思義，NativePHP 就是原生 PHP，意指可在本機執行的 PHP 應用程式。長久以來，PHP 大多用於網頁開發，所有程式碼都在遠端伺服器上執行。NativePHP 徹底改變了這種運作模式，開發人員現在可以使用它來開發原生桌面軟體，以及適用於 Android 與 iOS 的行動應用程式。</p>



<p class="wp-block-paragraph">你可以在此瀏覽官方網站：<a href="https://nativephp.com/">Baking Delicious Native Apps &#8211; NativePHP</a></p>



<p class="wp-block-paragraph"><strong>NativePHP 的運作方式為何？</strong></p>



<p class="wp-block-paragraph">其原理並不繁雜，核心概念和多數應用程式大同小異。傳統 PHP 仰賴遠端伺服器上的直譯器執行，而 NativePHP 會將 PHP 執行環境直接封裝在最終的 EXE 檔案或應用安裝檔內。該專案團隊也針對內建執行環境進行最佳化，提升整體執行效能。</p>



<p class="wp-block-paragraph"><strong>以下為官方架構圖：</strong></p>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" src="https://www.foxdevelop.com/wp-content/uploads/2026/05/2026-05-25_205955.png" alt="" class="wp-image-65"/></figure>



<p class="wp-block-paragraph">NativePHP 會把完整的 PHP 執行環境與你的應用程式整合在一起。行動應用會透過 Swift 或 Kotlin 進行封裝，桌面軟體則使用 Electron 建置。此平台透過專屬橋接介面存取硬體功能，並藉由內建的原生 WebView 顯示應用介面。你仍可使用標準 PHP 進行開發，只需新增數個擴充功能，就能連接裝置原生功能。概念相當簡單：你所有的 PHP 程式碼都會直接在使用者的裝置本機執行。</p>



<p class="wp-block-paragraph">從左側架構圖可見，每一個 NativePHP 應用都由 Swift 或 Kotlin 外層程式碼包裹，內部包含完整的 PHP 執行環境與自訂 PHP 擴充功能。</p>



<p class="wp-block-paragraph">圖中標示的自訂 PHP 擴充功能，是讓 PHP 能夠呼叫系統原生功能的核心元件，也是專為 NativePHP 打造的專用 PHP 外掛程式。它接收 PHP 送出的請求，轉交給底層的 Swift 或 Kotlin 橋接程式碼來執行實際的系統指令，而系統回傳的資料也會透過同一個擴充功能傳回 PHP。</p>



<p class="wp-block-paragraph">這項自訂擴充功能不可或缺。缺少它，NativePHP 就無法運作，我們也不可能使用 PHP 開發本機應用程式。</p>



<p class="wp-block-paragraph">使用者透過原生 WebView 檢視所有內容，這是內嵌在應用程式中的輕量級瀏覽器引擎，用來載入 PHP 與 HTML 頁面。它並非完整版 Chrome，只是封裝在成品應用當中的瀏覽器元件。</p>



<p class="wp-block-paragraph">至此，相信你已經對 NativePHP 有基礎認識。我們會先從行動應用開發開始教學，後續再介紹桌面開發的相關內容。</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh-tw/2026/06/07/nativephp-%e5%85%a5%e9%96%80%ef%bc%9a%e5%88%9d%e6%ad%a5%e4%bb%8b%e7%b4%b9/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>NativePHP 基礎：行動版 NativePHP 簡介</title>
		<link>https://www.foxdevelop.com/zh-tw/2026/06/07/nativephp-%e5%9f%ba%e7%a4%8e%ef%bc%9a%e8%a1%8c%e5%8b%95%e7%89%88-nativephp-%e7%b0%a1%e4%bb%8b/</link>
					<comments>https://www.foxdevelop.com/zh-tw/2026/06/07/nativephp-%e5%9f%ba%e7%a4%8e%ef%bc%9a%e8%a1%8c%e5%8b%95%e7%89%88-nativephp-%e7%b0%a1%e4%bb%8b/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Sun, 07 Jun 2026 07:24:54 +0000</pubDate>
				<category><![CDATA[NativePHP 教學]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=1247</guid>

					<description><![CDATA[在上一堂課中，我們介紹了 NativePHP 的基礎概念。今天，我們將深入探討行動版 NativePHP。簡單來說，這個函式庫是專為建構行動應用程式而打造的。]]></description>
										<content:encoded><![CDATA[

<p class="wp-block-paragraph">在上一堂課中，我們介紹了 NativePHP 的基礎概念。今天，我們將深入探討行動版 NativePHP。簡單來說，這個函式庫是專為建構行動應用程式而打造的。</p>



<p class="wp-block-paragraph">如果你已經會使用 PHP 程式設計，就不需要學習全新的程式語言來開發 iOS 和 Android 的原生應用程式，而行動版 NativePHP 正是實現這件事的工具。它也是第一個能讓完整 PHP 程式碼在行動裝置硬體上原生執行的工具，完全不需要外部網頁伺服器。</p>



<p class="wp-block-paragraph">這個工具會將預先編譯的 PHP 執行環境與 Laravel 框架一起打包進你的最終應用程式中。它也會建立與各平台原生系統 API 的無縫連結，讓開發者可以用熟悉的 PHP 語法開發真正的原生行動軟體。以這種方式建構的應用程式執行流暢，且預設就具備離線運作能力。</p>



<h1 class="wp-block-heading">此框架的主要優勢</h1>



<p class="wp-block-paragraph">首先，它提供了<strong>真正等級的原生效能</strong>。透過行動裝置最佳化的內嵌 PHP 執行環境驅動，它與一般以網頁包裝的應用程式有根本上的不同，能提供接近完全原生軟體的使用體驗。</p>



<p class="wp-block-paragraph">1. 你可以<strong>直接存取原生裝置功能</strong>。常見的硬體功能，例如裝置相機、生物辨識驗證與推播通知，都可以直接呼叫，你也可以使用平台的原生控制項來建立介面。所有功能都整合在單一函式庫中，讓開發流程更順暢。</p>



<p class="wp-block-paragraph">2. 它<strong>與整個 Laravel 生態系深度整合</strong>。資深的 Laravel 開發者可以重複使用既有的技能與預建套件，不用從頭學習陌生的新框架。</p>



<p class="wp-block-paragraph">3. 完全<strong>不依賴外部網頁伺服器</strong>；你的整個應用程式都在裝置本機執行，從一開始就以離線功能為設計目標。更棒的是，它支援真正的跨平台開發——只要編譯單一程式碼基底，就能產生適用於 iOS 和 Android 的個別安裝檔。</p>



<h2 class="wp-block-heading">對新開發者友善的學習曲線</h2>



<p class="wp-block-paragraph">使用行動版 NativePHP，你不需要學習 Swift 或 Kotlin 這類冷門的行動開發語言，也不用浪費時間設定 Gradle 或 Xcode 這類複雜的建置工具。你的開發工作只需要撰寫標準 PHP 程式碼。</p>



<p class="wp-block-paragraph">全球許多 PHP 開發者現在都利用他們既有的技術，更快地推出行動應用程式，大幅縮短整體開發週期。從完成原始程式碼到將應用程式提交至官方應用商店，可能只需要幾分鐘。</p>



<h2 class="wp-block-heading">它如何執行與開發方式</h2>



<p class="wp-block-paragraph">背後的工作流程很簡單。編譯專案時，預建的 PHP 二進位檔會與你的業務邏輯一起打包進一個以 Swift 或 Kotlin 撰寫的輕量原生殼層中。內建的抽象層會管理內嵌的 PHP 執行環境，並直接執行你的 PHP 程式碼。客製化的 PHP 擴充則會將 PHP 邏輯連結到目標手機上所有可用的原生功能。</p>



<p class="wp-block-paragraph">建立前端 UI 時有很高的彈性：標準的 <strong>HTML、JavaScript、Tailwind、Blade、Livewire</strong> 都能直接使用，也支援 React 和 Vue 這類熱門框架。從第 3 版開始，搭配 EDGE 就能直接使用平台原生 UI 控制項，讓應用程式的外觀與使用體驗更為真實。開發者只需要呼叫簡單的內建輔助函式，就能實作大多數所需的功能。</p>



<h2 class="wp-block-heading">比標準網頁包裝應用程式更強大</h2>



<p class="wp-block-paragraph">很多人誤以為它只是另一個包在行動容器裡的網站，但事實完全不是如此。你應用程式的每一段程式碼都會與應用程式套件一起安裝在使用者的裝置本機上。</p>



<p class="wp-block-paragraph">透過專為此打造的 PHP 擴充，大多數原生行動系統 API 都已可存取，新的整合功能也會定期新增。完整的可用功能清單請參考官方文件。</p>



<p class="wp-block-paragraph">與受各種執行環境限制的 PWA 或 WebAssembly 解決方案不同，此架構提供了完全不受限制的 PHP 執行能力，不受沙箱限制，也不需要繁瑣的設定工作。它讓所有資深 PHP 開發者都能投入原生行動開發。</p>



<p class="wp-block-paragraph">總而言之，如果你是計畫開發行動應用程式的 PHP 開發者，不妨試試行動版 NativePHP——你很可能會對它的能力感到驚喜。</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh-tw/2026/06/07/nativephp-%e5%9f%ba%e7%a4%8e%ef%bc%9a%e8%a1%8c%e5%8b%95%e7%89%88-nativephp-%e7%b0%a1%e4%bb%8b/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
