सिम्फनी - अभिव्यक्ति
जैसा कि हमने पहले चर्चा की, अभिव्यक्ति की भाषा सिम्फनी एप्लिकेशन की मुख्य विशेषताओं में से एक है। सिम्फनी अभिव्यक्ति मुख्य रूप से एक कॉन्फ़िगरेशन वातावरण में उपयोग करने के लिए बनाई गई है। यह गैर-प्रोग्रामर को थोड़े प्रयास से वेब एप्लिकेशन को कॉन्फ़िगर करने में सक्षम बनाता है। हमें एक अभिव्यक्ति का परीक्षण करने के लिए एक सरल अनुप्रयोग बनाते हैं।
Step 1 - एक परियोजना बनाएं, expression-language-example।
cd /path/to/dir
mkdir expression-language-example
cd expression-language-example
composer require symfony/expression-language
Step 2 - एक अभिव्यक्ति ऑब्जेक्ट बनाएँ।
use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
$language = new ExpressionLanguage();
Step 3 - एक सरल अभिव्यक्ति का परीक्षण करें।
echo "Evaluated Value: " . $language->evaluate('10 + 12') . "\r\n" ;
echo "Compiled Code: " . $language->compile('130 % 34') . "\r\n" ;
Step 4 - सिम्फनी अभिव्यक्ति शक्तिशाली होती है जैसे कि यह एक 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