[TOC]
# 概況
[Nanobox](https://nanobox.io) 是一個用于開發和部署應用程序的便攜式微型平臺。在本地工作時,Nanobox使用Docker來啟動和配置根據您的特定需求配置的虛擬開發環境。當您準備部署到實時服務器時,Nanobox將采用相同的環境并將其轉移到您選擇的云提供商上,然后您可以通過Nanobox儀表板管理和擴展您的應用。
在這篇文章中,我們將逐步介紹并在本地運行一個全新的Phalcon應用程序,除了Nanobox之外沒有安裝任何東西。首先[創建一個免費的Nanobox帳戶](https://dashboard.nanobox.io/users/register),然后[下載并運行Nanobox安裝程序](https://dashboard.nanobox.io/download)。
## 創建一個新項目
創建一個項目文件夾并 `cd` 進入其中:
```bash
mkdir nanobox-phalcon && cd nanobox-phalcon
```
<a name='boxfile-yml'></a>
## 添加`boxfile.yml`
Nanobox使用[`boxfile.yml`](https://docs.nanobox.io/boxfile/) 來構建和配置應用程序的運行時和環境。在項目的根目錄中,使用以下命令創建一個`boxfile.yml`:
```yaml
run.config:
engine: php
engine.config:
runtime: php-7.1
document_root: public
extensions:
- phalcon
extra_steps:
- echo "alias phalcon=\'phalcon.php\'" >> /data/var/home/gonano/.bashrc
```
這告訴Nanobox:
- 使用PHP[引擎](https://docs.nanobox.io/engines/),這是一組構建應用程序運行時的腳本
- 使用 PHP 7.1
- Apache文檔根目錄設置為`public`
- 包括Phalcon擴展。Nanobox采用了簡單的擴展方法,因此您可能需要包含其他擴展。更多信息可以在[這里](https://guides.nanobox.io/php/phalcon/php-extensions/)找到
- 為Phalcon Devtools添加一個bash別名,這樣你就可以使用`phalcon`命令了
## 將Phalcon Devtools添加到您的`composer.json`
在項目的根目錄中創建`composer.json`文件,并將`phalcon/devtools` 包添加到您的開發需求中
```json
{
"require-dev": {
"phalcon/devtools": "~3.0.3"
}
}
```
>[warning] **注意** Phalcon Devtools的版本取決于您使用的PHP版本。
## 啟動Nanobox并生成新的Phalcon應用程序
從項目的根目錄運行以下命令以啟動Nanobox并生成新的Phalcon應用程序。當Nanobox啟動時,PHP引擎將自動安裝并啟用Phalcon擴展,運行將安裝Phalcon Devtools的`composer install`,然后將您放入虛擬環境內的交互式控制臺。您的工作目錄將掛載到VM中的`/app`目錄中,以便在進行更改時,它們將反映在VM和本地工作目錄中。
```bash
# 啟動nanobox并放入nanobox控制臺
nanobox run
# cd into the /tmp directory
cd /tmp
# 生成一個新的phalcon應用程序
phalcon project myapp
# change back to the /app dir
cd -
# 將生成的應用程序復制到項目中
cp -a /tmp/myapp/* .
# 退出控制臺
exit
```
## 本地運行應用程序
在實際運行新的Phalcon應用程序之前,我們建議使用Nanobox添加DNS別名。這將在指向您的開發環境的本地`hosts`文件中添加一個條目,并提供從瀏覽器訪問您的應用程序的便捷方式。
```bash
nanobox dns add local phalcon.dev
```
Nanobox提供了一個`php-server`幫助程序腳本,可以啟動Apache(或Nginx,具體取決于你的`boxfile.yml`配置)和PHP。當使用`nanobox run`命令傳遞時,它將啟動本地開發環境并立即運行您的應用程序。
```bash
nanobox run php-server
```
運行后,您可以訪問[phalcon.dev](http://phalcon.dev)上的應用程序。
## 檢查環境
您的虛擬環境包含運行Phalcon應用程序所需的一切。隨意逛逛。
```bash
# drop into a Nanobox console
nanobox run
# check the php version
php -v
# 檢查phalcon devtools是否可用
phalcon info
# check that your local codebase is mounted
ls
# exit the console
exit
```
## Phalcon 和 Nanobox
Nanobox為您提供在隔離的虛擬環境中開發和運行Phalcon應用程序所需的一切。使用項目中的`boxfile.yml`,只需運`行nanobox run`,就可以在幾分鐘內啟動并運行。
Nanobox有一個[Phalcon快速入門](https://github.com/nanobox-quickstarts/nanobox-phalcon),其中包括本文所涵蓋的所有內容。他們還有一個[Nanobox Phalcon使用指南](https://guides.nanobox.io/php/phalcon/)。在以后的文章中,我們想介紹使用Phalcon和Nanobox的其他方面,包括添加和連接數據庫,將Phalcon部署到生產中等等。如果您有興趣,請在[Twitter](http://twitter.com/nanobox_io)上告訴我們。
- 常規
- Welcome
- 貢獻
- 生成回溯
- 測試重現
- 單元測試
- 入門
- 安裝
- Web服務器設置
- WAMP
- XAMPP
- 教程
- 基礎教程
- 教程:創建一個簡單的REST API
- 教程:V?kuró
- 提升性能
- 教程:INVO
- 開發環境
- Phalcon Compose (Docker)
- Nanobox
- Phalcon Box (Vagrant)
- 開發工具
- Phalcon開發者工具的安裝
- Phalcon開發者工具的使用
- 調試應用程序
- 核心
- MVC應用
- 微應用
- 創建命令行(CLI)應用程序
- 依賴注入與服務定位
- MVC架構
- 服務
- 使用緩存提高性能
- 讀取配置
- 上下文轉義
- 類加載器
- 使用命名空間
- 日志
- 隊列
- 數據庫
- 數據庫抽象層
- Phalcon查詢語言(PHQL)
- ODM(對象文檔映射器)
- 使用模型
- 模型行為
- ORM緩存
- 模型事件
- 模型元數據
- 模型關系
- 模型事務
- 驗證模型
- 數據庫遷移
- 分頁
- 前端
- Assets管理
- 閃存消息
- 表單
- 圖像
- 視圖助手(標簽)
- 使用視圖
- Volt:模板引擎
- 業務邏輯
- 訪問控制列表(ACL)
- 注解解析器
- 控制器
- 調度控制器
- 事件管理器
- 過濾與清理
- 路由
- 在session中存儲數據
- 生成URL和路徑
- 驗證
- HTTP
- Cookies管理
- 請求環境
- 返回響應
- 安全
- 加密/解密
- 安全
- 國際化
- 國際化
- 多語言支持