محرك سمارتي Smary Engin

facebook-group

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته
فيما يلي شرح مبسط قمت بإعداده باللغة العربية حول سمارتي وكيفية استخدامه وفائدته , مع تمنياتي لكم بالتوفيق
وقد ارفقت الملف الحاوي على الشرح مع
هذه المدونة


سلام:
برمجة/تصميم مواقع الانترنت وهندسة البرمجيات (محرك سمارتي):

قد تبدأ ببرمجة أحد مواقع الوب , وفق تصميم ما قمت بتنجيزه , أو قام مصمم وب مختص بإنجازه لك , ولنفترض بأنك تبرمج بلغة php  , وبعد انتهاء برمجة الموقع , اضطر مصمم الموقع أن يقوم ببعض التعديلات على تصاميمه , فتجد نفسك مضطراً في أغلب الأحيان – ليس دوما وذلك بحسب المنهجية التي تتبعها في أسلوب برمجتك – إلى تعديل في الرماز الذي قمت به سابقاً ليتكيف مع التصميم الجديد , وهذه هي الحالة مع أية تعديلات قد تطرأ على التصميم ؟! فما الحل؟ وهل هذه العملية منطقية برأيك ؟؟!

نعلم بأن أحد المبادئ الأساسية في هندسة البرمجيات يكمن في عزل منطق العمل business logic   عن العرض – التصميم- presentation  . وحتى نحافظ على هذا المبدأ في عملنا فقد تم ابتكار العديد من الأدوات والبرمجيات والمكتبات  المساعدة على تنظيم عملية الرماز والمحافظة على مبادئ هندسة البرمجيات قولاً وفعلاً, ومن أشهرها سمارتي smarty  , فما هو سمارتي , وكيف يتم استخدامه والاستفادة من الفعاليات التي يتقدمها؟؟

ماهو سمارتي ؟

يعتبر سمارتي بمثابة أحد  محركات القوالب template engineالمخصصة للغة php.

وبشكل أكثر تحديداً, فهو يوفر لنا وسيلة سهلة وبسيطة لعزل منطق التطبيق application logicوالمحتوى عن العرض presentation  . وتعتبر هذه الطريقة بمثابة الطريقة المثلى في الحالات التي يكون فيها مبرمج التطبيق ومصمم القوالب شخصان منفصلان.

 

آلية العمل :

الفكرة ببساطة هي التالية:

يعتمد سمارتي ببساطة مبدأ القوالب في عمله , فبعد أن يقوم المصمم بتصميم القالب الذي يرغب أن يكون العرض فيه , يتم تضمين متحولات سمارتي ضمنه ,تلك المتحولات المسؤولة عن عرض القيم المطلوبة ضمن هذه القوالب بالقيم المناسبة وفي الوقت المناسب بالاعتماد على إسناد القيم الصحيحة والمطلوبة لها وفق منطق العمل المطلوب.

بمعنى آخر, يقوم مصمم القوالب باستخدام مزيج من تاغات html  مع تاغات القالب template tags  بهدف تشكيل عرض مستقل عن لغة البرمجة – سيتضح لنا هذا الكلام بشكل عملي عند طرح المثال البسيط بعد قليل.

وبذلك في حال قرر مصمم القوالب أن يعيد هيكلة تصميم القوالب بشكل كامل فإن ذلك لن يؤثر على المبرمج ولن يضطر المبرمج إلى إعادة البرمجة من جديد لتتكيف مع تصاميم القوالب الجديدة. وبالمثل, ففي الحالة التي قد يقرر فيها المبرمج تغير منطق العمل الذي كان يسير وفقه فإن ذلك لا يقتضي أن يقوم مصمم القوالب بالقيام بأي تغيّرات لتتوافق مع المنطق الجديد في العمل.

اعداد بيئة عمل سمارتي مع مثال توضيحي بسيط :

هالك عدة أساليب مختلفة لتبدأ بتصميم موقع يستخدم سمارتي ,ولكني سأختار طريقة بسيطة وواضحة:

1:تقوم في البداية بتنزيل المجلد المضغوط الذي يحتوي على مكتبات سمارتي الأساسية اللازمة لإعداد بيئة العمل – المجلد موجود في موقع سمارتي  www.smarty.net.

2:تقوم بفك ضغط المجلد ضمن مجلد يدعى – على سبيل المثال – smarty  , ويتواجد هذا المجلد ضمن مجلد الموقع الذي تقوم ببرمجته , وبعد فك الضغط ستجد ضمن مجلد سمارتي مايلي

   /yourSiteFolder/smarty/

                          Config_File.class.php

                          debug.tpl

                          internals/

                          plugins/

                          Smarty.class.php

                          Smarty_Compiler.class.php

 

.

3:حتى يعمل سمارتي بشكل صحيح فأنت بحاجة لإنشاء 4 مجلدات ضمن مجلد سمارتي الذي انشأته سابقاً , ألا وهي

templates,templates_c,cache,configs  ,وهي مخصصة – بالترتب- لملفات سمارتي التالية

templates , compiled templates ,cached templates , config  

4:أنشأ داخل مجلد تطبيقك ملف يدعى index.phpواكتب فيه الرماز التالي:

<?php

 

// put path to Smarty.class.php

require(‘./smarty/Smarty.class.php’);

$smarty = new Smarty();

 

$smarty->template_dir = ‘./smarty/templates’;

$smarty->compile_dir = ‘./smarty/templates_c’;

$smarty->cache_dir = ‘./smarty/cache’;

$smarty->config_dir = ‘./smarty/configs’;

 

$smarty->assign(‘name’, ‘:I am Light Tiger, nice to meet you ‘);

$smarty->display(‘index.tpl’);

 

?>

5:أنشأ ملف يدعى index.tplفي مجلد templates  أي كما يلي :

/yourSiteFolder/smarty/templates/index.tpl

حرر هذا الملف ليحوي الرماز التالي:

<html>

<head>

<title>Smarty</title>

</head>

<body>

Hello, {$name}!

</body>

</html>

 

6:واخيراً ,استعرض التطبيق الذي انشأته باستخدام مستعرض الوب الموجود على جهازك

http://localhost/yourSiteFolder/index.php

وسيظهر لك النص التالي

Hello, :I am Light Tiger, nice to meet you!

وبذلك تكون قد قمت بإنشاء أول تطبيق لك باستخدام سمارتي .

لاحظ كيف تمت عملية استبدال المتحول الموجود بالقالب بالقيمة المسندة له من خارج القالب.

ما سبق كان مقدمة بسيطة لتتابع تعلم العديد من ميزات سمارتي التي توفر عليك الكثير الكثير من الجهد والوقت.

مفاهيم اساسية لمتحولات سمارتي :

 يتم تعريف متحول في سمارتي كما يلي {$smaryVariable}  حيث يخضع تعريف اسم المتحول لنفس قواعد تعريف المتحولات في php  ,ويجب أن يحاط بالأقواس التالية{}

أما عملية إسناد متحول لسمارتي فتتم عبر الاستدعاء التالي :

$smarty->assign(‘variableName’,’value’);

لعرض أحد القوالب(الموجودة ضمن مجلد القوالب ):

$smarty->display(‘templateName.tpl’);

 

لإضافة تعليق

{*this is a smarty comment that will not be displayed on the final output of the template*}

وبالإضافة إلى الكثير من التوابع والإمكانيات التي يقدمها لنا سمارتي للتحكم بعرض المعلومات.

وبذلك نكون قد قدمنا لكم شرحاً بسيطاً ومختصراً عن أحد أهم الأدوات المساعدة على تنظيم العمل وتبسيطه.              للاستزادة ولمزيد من المعلومات بإمكانكم مراجعة الموقع التالي: www.smarty.net

, , , , ,

  1. #1 by holooli on أغسطس 1, 2008 - 5:41 م

    ماشاء الله عليك، بفترة بسيطة اتقنت الكثير يا نمر يا أسود😀 … كيف الألماني معك؟

    أدعوك لزيارة مدونتي أيضاً:
    dev.holooli.com

  2. #2 by jehazee on مارس 23, 2009 - 8:22 م

    اشكرك استاذي الغالي وباذن الله تعالى بكون احد متابعيك من اليوم ورايح

أضف تعليقاً

Please log in using one of these methods to post your comment:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s

%d مدونون معجبون بهذه: