- Symfony 教程
- Symfony - 首頁
- Symfony - 簡介
- Symfony - 安裝
- Symfony - 架構
- Symfony - 元件
- Symfony - 服務容器
- Symfony - 事件和事件監聽器
- Symfony - 表示式
- Symfony - 捆綁包
- 建立簡單的 Web 應用程式
- Symfony - 控制器
- Symfony - 路由
- Symfony - 檢視引擎
- Symfony - Doctrine ORM
- Symfony - 表單
- Symfony - 驗證
- Symfony - 檔案上傳
- Symfony - Ajax 控制元件
- Cookie 和會話管理
- Symfony - 國際化
- Symfony - 日誌
- Symfony - 電子郵件管理
- Symfony - 單元測試
- Symfony - 高階概念
- Symfony - REST 版本
- Symfony - CMF 版本
- 完整的示例
- Symfony 有用資源
- Symfony - 快速指南
- Symfony - 有用資源
- Symfony - 討論
Symfony - 表示式
正如我們之前討論的,表示式語言是 Symfony 應用程式的關鍵特性之一。Symfony 表示式主要用於配置環境中。它能幫助非程式設計師毫不費力地配置 Web 應用程式。我們建立一個簡單的應用程式來測試一個表示式。
步驟 1 − 建立一個專案,expression-language-example。
cd /path/to/dir mkdir expression-language-example cd expression-language-example composer require symfony/expression-language
步驟 2 − 建立一個表示式物件。
use Symfony\Component\ExpressionLanguage\ExpressionLanguage; $language = new ExpressionLanguage();
步驟 3 − 測試一個簡單的表示式。
echo "Evaluated Value: " . $language->evaluate('10 + 12') . "\r\n" ;
echo "Compiled Code: " . $language->compile('130 % 34') . "\r\n" ;
步驟 4 − Symfony 表示式非常強大,因為它可以在表示式語言中攔截一個 PHP 物件及其屬性。
class Product {
public $name;
public $price;
}
$product = new Product();
$product->name = 'Cake';
$product->price = 10;
echo "Product price is " . $language
->evaluate('product.price', array('product' => $product,)) . "\r\n";
echo "Is Product price higher than 5: " . $language
->evaluate('product.price > 5', array('product' => $product,)) . "\r\n";
在此,表示式 product.price 和 product.price > 5 攔截 $product 物件的屬性 price 並評估結果。
完整的編碼如下所示。
main.php
<?php
require __DIR__ . '/vendor/autoload.php';
use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
$language = new ExpressionLanguage();
echo "Evaluated Value: " . $language->evaluate('10 + 12') . "\r\n" ;
echo "Compiled Code: " . $language->compile('130 % 34') . "\r\n" ;
class Product {
public $name;
public $price;
}
$product = new Product();
$product->name = 'Cake';
$product->price = 10;
echo "Product price is " . $language
->evaluate('product.price', array('product' => $product,)) . "\r\n";
echo "Is Product price higher than 5: " . $language
->evaluate('product.price > 5', array('product' => $product,)) . "\r\n";
?>
結果
Evaluated Value: 22 Compiled Code: (130 % 34) Product price is 10 Is Product price higher than 5: 1
廣告