الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

شرح مبسط بالعربي عن محرك سمارتي

بدأه joo في 2 يونيو 2008 · 10 رد · 1,706 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلام

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

وقد ارفقت الملف الحاوي على الشرح مع هذا البريد

سلام:

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

قد تبدأ ببرمجة أحد مواقع الوب , وفق تصميم ما قمت بتنجيزه , أو قام مصمم وب مختص بإنجازه لك , ولنفترض بأنك تبرمج بلغة 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

smarty_tool_for_php.rar

تم تعديل هذه المشاركة بواسطة محمد معاشر في 2 يونيو 2008 في 10:26 — السبب: تعديل التنسيق ..

#2

شرح مميز وجديد ...إن لم يكن منقول من أحد أو مكرر فأقترح على الإدارة تثبيته

#3

السلام عليكم

اخي بارك الله فيك , شكرا على الشرح الرائع .

:clapping:

سبحان الله والحمد لله ولا اله الا الله و الله اكبر

اللهم صلي وسلم وبارك على سيدنا محمد وعلى اله وصحبه وسلم

#4
mostafa_khattab كتب:
شرح مميز وجديد ...إن لم يكن منقول من أحد أو مكرر فأقترح على الإدارة تثبيته

أخي المحترم :

لم اقم بنقل الشرح من أحد , فقد قمت بقرائة التوثيق والشرح الوارد في اللغة الانكليزية من على موقع سمارتي

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

وشكرا لك

#5
عدنان عيسى كتب:
السلام عليكم

اخي بارك الله فيك , شكرا على الشرح الرائع .

:clapping:

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

#6

اخي الكريم , بالنسبة للصورة بصراحة ما عندي الرابط , بس ابشر اذا حصلت الرابط رح اعطيك ياه .

سبحان الله والحمد لله ولا اله الا الله و الله اكبر

اللهم صلي وسلم وبارك على سيدنا محمد وعلى اله وصحبه وسلم

#7

من بعد اذن الاخ عدنان , اليك اخي joo رابط الكتاب (ونسخه حديثه ) :

http://www.zshare.net/download/9600811f496267/

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

------------------------------------------------------------------------------------------------

gazabigBanner.jpg

------------------------------------------------------------------------------------------------

#8

شكرا كتير اخ محمد

لو بتعرف اديش صارلي عم دور على هدا الكتاب , واخيرا صار عندي

#9

السلام عليكم

تشكر اخي محمد على المشاركة , و جزاكم الله خير .

سبحان الله والحمد لله ولا اله الا الله و الله اكبر

اللهم صلي وسلم وبارك على سيدنا محمد وعلى اله وصحبه وسلم

#11

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

تم تعديل هذه المشاركة بواسطة محمد ديوب في 11 يونيو 2008 في 13:00

مواضيع مشابهة