هندى ليست في الواقع "قالب المحرك"، وسيكون من الأدق وصفها في "قالب / إطار العرض." وهذا يعني أنه يوفر مبرمج ومصمم القالب مع مجموعة كبيرة من الأدوات لأتمتة المهام التي جرى تناولها في طبقة العرض من الطلب. وأشدد على كلمة الإطار لأن هندى ليس-استبدال العلامة بسيط قالب المحرك. على الرغم من أنها يمكن أن تستخدم لهذا الغرض بسيط، تركيزها على تطوير سريع وغير مؤلم ونشر التطبيق الخاص بك، مع الحفاظ على الأداء العالي، والتدرجية والأمن والنمو في المستقبل.
ذلك هو هندى حق لك؟ ما يأتي إلى أسفل إلى استخدام الأداة المناسبة لهذا المنصب. إذا كنت تريد استبدال متغير بسيط، قد ترغب في النظر في شيء أكثر بساطة أو حتى القوائم الخاصة بك. إذا كنت ترغب في إطار النموذجيه قوية مع العديد من الأدوات لمساعدتك مع تطور التطبيق الخاص بك في المستقبل، ومن المرجح هندى خيارا جيدا.
لماذا يستخدم؟
واحدة من أهداف التصميم الأساسي Smartys هو تسهيل فصل رمز التطبيق من العرض. عادة، رمز التطبيق يحتوي على منطق الأعمال من التطبيق الخاص بك، وكتب والمحافظة عليها في كود PHP. يتم الحفاظ على هذا الرمز من قبل المبرمجين. العرض هو طريقة عرض المحتوى الخاص بك إلى المستخدم النهائي، الذي هو مكتوب والاحتفاظ بها في ملفات القالب. يتم الاحتفاظ القوالب من قبل مصممي القالب.
في معظم ظيفتها الأساسية، ورمز التطبيق بجمع المحتوى، ويسند الى قالب المحرك ويعرضها. محتوى قد يكون شيئا مثل العنوان، الشعار، مؤلف والجسم من مقال صحفي. رمز التطبيق ليس لديه قلق كيف سيتم عرض هذا المحتوى في قالب. مصمم القالب هو المسؤول عن العرض التقديمي. هم تحرير ملفات القالب، إضافة العلامات والوصول بها إلى الانتهاء. هذا عادة ما ينطوي على أشياء مثل علامات HTML، أوراق الأنماط المتتالية وغيرها من الأدوات التي يقدمها محرك القالب.
هذا النموذج يخدم عدة أغراض:
) المصممين لا يمكن كسر رمز التطبيق. وسعهم الفوضى مع القوالب كل ما تريد، ولكن رمز يبقى سليما. بأن المدونة ستكون أكثر إحكاما، وأكثر أمنا وأسهل للمحافظة عليه.
) تقتصر أخطاء في قوالب لSmartys إجراءات معالجة الأخطاء، مما يجعلها بسيطة وبديهية ممكن للمصمم.
) مع العرض على طبقة خاصة بها، يمكن للمصممين تعديل أو إعادة تصميم تماما من الصفر، وكل ذلك دون تدخل من مبرمج.
) المبرمجين لا يتم العبث مع القوالب. يمكن أن تذهب نحو الحفاظ على رمز التطبيق، وتغيير المحتوى الطريقة التي يتم الحصول عليها، مما يجعل قواعد العمل الجديدة، وما إلى ذلك دون الإخلال طبقة العرض.
) قوالب هي تمثيل دقيق لما الناتج النهائي سيكون، وهو نهج بديهية. المصممين لا يهتمون كيف محتوى حصلت على القالب. إذا كان لديك بيانات دخيلة في قالب مثل عبارة SQL، وهذا يفتح خطر كسر رمز التطبيق قبل الحذف العرضي أو تغيير من قبل المصمم.
) أنت لا فتح الخادم الخاص بك لتنفيذ التعليمات البرمجية PHP التعسفي. هندى لديها العديد من ميزات الأمان التي بنيت في المصممين لذا لن الإخلال بالأمن، سواء عن قصد أو غير مقصود. يمكن أن يفعلوا إلا ما هي محصورة في في قوالب.
على الرغم من أن يتم فصل رمز التطبيق من العرض، وهذا لا يعني بالضرورة ويفصل هذا المنطق. رمز التطبيق ومن الواضح أن منطق، ولكن قد يكون القوالب منطق يستند على شرط أن يكون للعرض فقط. على سبيل المثال، إذا كان مصمم يريد أن البديل الألوان صف الجدول أو العلوية حالة بعض المحتويات المخصصة، فإنها يمكن. هذا هو منطق العرض، وهو أمر لا يجب أن تهتم مبرمج مع. عدد المرات التي كنت قد عرض بعض عرض في عمود واحد ثم أردت له في اثنين أو ثلاثة أعمدة، لذلك يحتاج رمز التطبيق تعديل لاستيعاب هذا؟ أفضل نهج هو لتعيين محتوى في مجموعة واحدة، والسماح للقالب التعامل مع العرض التقديمي. وهذا تبسيط تطبيق الخاص بك والاحتفاظ القوالب مرونة. هندى لوازم أدوات للتعامل مع هذا النوع من الحالات.
هذا لا يعني أن هندى يمنعك من وضع منطق التطبيق في القالب، يكون لديك قليلا من الانضباط الذاتي. هنا مثال من تضمين منطق الأعمال في القالب (هذا صحيح، وتجنب القيام بذلك إذا كان ذلك ممكنا):
{إذا $ smarty.session.user و($ user_type مكافئ "محرر" أو $ user_type مكافئ "مشرف")}
<نوع المدخلات = قيمة اسم مربع = تغيير = "ذ"> تحرير
{/ إذا}
الشيكات المنطق إذا تم تسجيل المستخدم في وأنها إما أن تكون محررا أو مسؤول، ثم سمح لهم تعديل هذا حتى على مربع تحرير يظهر. هذا هو المنطق الذي ينتمي في التعليمات البرمجية للتطبيق. لا يهتم القالب عما أوراق اعتماد هذا المستخدم لديه، فإنه يحتاج فقط لمعرفة ما إذا كان يتم عرض مربع التحرير أم لا! لذلك دعونا ننظر إلى نهج أكثر ملاءمة:
{إذا $ edit_flag}
<نوع المدخلات = قيمة اسم مربع = تغيير = "ذ"> تحرير
{/ إذا}
والأمر متروك للمبرمج تطبيق لتعيين $ edit_flag، بسيطة وسهلة لفهم متغير في القالب. بهذه الطريقة القالب لم تعد تعتمد على بنية البيانات الأساسية الخاصة بك. إذا كان تنسيق هيكل بيانات الجلسة يتغير أي وقت مضى، لا شيء يحتاج إلى تعديل في القالب.
الآن دعونا ننظر في عدد قليل من الأشياء التي يمكن القيام بها هندى. شيء واحد يمكن أن تفعله هو ظائف مخصصة. هذه العلامات في القالب التي تنفذ مهمة معينة هي. على سبيل المثال:
{ملف html_image = "masthead.gif"}
هنا لدينا وظيفة تسمى "html_image". هذه الدالة تأخذ الصورة التي وردت في "ملف" سمة ويعمل كل عمل ضروري من أجل التوصل إلى رمز HTML التالية:
وظيفة الصور لم يقمن معرفة الطول والعرض وتوريد العلم الحدود الافتراضية. وبالطبع يمكنك فقط استخدام علامة HTML ثابتة في قالب بدلا من ذلك، ولكن هذا يوضح كيف يمكن استخدام وظيفة مخصصة لتبسيط مهمة شائعة جدا. المصمم يمكن أن تركز على تصميم وبدرجة أقل على الاشياء التقنية. وعلاوة على ذلك، إذا قرر المصمم لإسقاط في صورة مختلفة حجم ترويسة، القالب لا يحتاج تعديل.
html_image هي وظيفة التي تأتي مع هندى. يمكنك أيضا جعل الوظائف المخصصة الخاصة بك. وهنا مثال آخر على ما يمكن للمرء أن تبدو مثل:
{نوع html_link = "المادة" معرف = "ABC123" النص = "النار تحيط بها فندق"}
هذا هو استخدام وظيفة مخصصة تسمى "html_link". أنها تأتي مع رمز HTML التالية:
<أ href = ل"/ display_article.php؟ معرف = ABC123"> النار تحيط بها فندق
ماذا يعني هذا إنجاز؟ لأحد، لا يحتاج المصمم لتكون معنية على شكل URL للمقال. مع عناوين المواقع الثابت تلوينها، ماذا يحدث لو يوم واحد مبرمج يقرر لتنظيف الامور، ويتغير بناء الجملة URL من /display_article.php؟id=abc123 ل/ ART / ABC123؟ سيكون لدينا لتحرير كل قالب مع URL المادة. هذا هو مجرد مثال آخر على كيفية وظيفة القالب يمكن أن تجعل قوالب أسهل للمحافظة عليه.
الآن قليلا على المبرمجين والقوالب. وفي وقت سابق ذكر أن مبرمج لديه أي رعاية لما تفعله القوالب مع المحتوى. على المستوى النظري وهذا صحيح، ولكن في العالم الحقيقي الذي لن نتوقع من مصمم قالب لدينا لبناء جميع القوالب من العدم. بعد كل شيء، ومنطق الأعمال لا تحديد ما يتم تعيين المحتوى إلى القوالب. لذلك، فإن مبرمج عادة إعداد قوالب هيكل عظمي لمصمم لتبدأ. هذا عادة ما تحتوي على العناصر الخام مثل متغيرات المحتوى والحلقات القسم، وربما بضعة أوسمة بسيطة حتى لا تبدأ مع المحتوى في فوضى كبيرة. هنا هو مثال على قالب الهيكل العظمي التي حلقات عبر قائمة المواد ويعرضها في جدول:
{اسم مقطع = حلقة الفن = $ المادة}
{$ المادة [الفن] .headline} |
| {$ المادة [الفن] .date} |
| {$ المادة [الفن] .author} |
|
{/ قسم}
الجدول>
الإخراج قد تبدو شيئا من هذا القبيل:
كيف كان فاز الغرب |
| 2 ديسمبر 1999 |
| جون واين |
|
يفقد الفريق، المدرب إنهاء |
| 2 فبراير 2002 |
| جون سميث |
|
الذواقة الطبخ |
| 23 يناير 1954 |
| بيتي كروكر |
|
الجدول>
الآن لبعض الأسئلة الشائعة:
لماذا استخدام القوالب في كل شيء؟ ما هو صعبة جدا حول كتابة <؟ صدى $ العنوان؛ ؟ > بدلا من {$ لقب}؟
جعل الأمور أسهل للقراءة لم يكن هدف التصميم، ولكن أكثر من الآثار الجانبية. استخدام القوالب له فوائد كبيرة، وكثير منها قد تم شرحه أعلاه. وبما أننا في بيئة القالب على أي حال، {$ عنوان} أقل دخيلة من <فب صدى $ العنوان؟. ؟ >، وخصوصا عندما تبدأ في النظر في ذلك في صفحات طويلة من المحتوى، لذلك كان واضحا جدا أن تركيب بسيط يساعد على جعل قوالب أسهل للقراءة والمحافظة عليها.
قالب يستغرق وقتا طويلا لتحليل، مما يجعل التطبيقات أبطأ بكثير.
قد يكون ذلك صحيحا في بعض الحالات، ولكن مع هندى أنه لم أبطأ من تنفيذ برنامج نصي PHP. على إعدام الأول من قالب، هندى تحويل ملفات القالب إلى مخطوطات PHP (وتسمى قالب تجميع.) وبعد ذلك، يتم تضمين النصي PHP فقط. الزوجان هذا مع مسرع PHP وكان لديك حقا بيئة النموذجيه سريعة مع الحد الأدنى من النفقات العامة.
هندى هي معقدة للغاية، وكيف يمكن أن يكون هذا الصيام؟
الأساسية هندى هو الهزيل جدا بالنظر لما هو عليه قادر. معظم وظائفه يكمن في الإضافات. تم تصميم العمارة المساعد بحيث يتم تحميل فقط الإضافات المطلوبة حسب الطلب. مع هذا الإطار، مضيفا حتى مئات من الإضافات الجديدة لا تؤثر على الأداء. هذا يجعل هندى بسرعة، قابلة للتطوير ومرنة.
لديها هندى أيضا ميزات التخزين المؤقت التي يمكن تحديث حيوي والحفاظ على أجزاء من الصفحة uncached في ترضيك. التخزين المؤقت يخزن الناتج من تجميع قوالب، وتوفير حاجة لتنفيذها على كل استدعاء.
كل هذا الحديث عن مسرعات، كيف هندى تشغيل دون واحد؟
في الواقع أنه يعمل بشكل جيد دون واحد. هندى لا يتطلب التسريع، ولكن القالب الملفات نفسها سوف تستفيد من واحد، شيء فريد من نوعه لهندى (AFAIK). إذا لم يكن لديك مسرع وتنفيذ القالب ليست سريعة كما ولكن ليس بطيئا بأي حال من الأحوال لأنها ليست معرب! أنت أيضا الإبقاء على جميع فوائد وميزات هندى أخرى. أيضا، منذ ومسرعات متاحة بحرية ليس هناك حقا عذر لعدم استخدام واحد. وأنها سوف تساعد على الأداء مع جميع تطبيقات PHP، وذلك باستخدام هندى أم لا.
كيف يمكن أن يكون أسهل للحفاظ؟
لا يمكن تفسير بعض الأمور، ولكن من ذوي الخبرة فقط. صالح الانفصال من منطق التطبيق من العرض التقديمي لا يمكن التأكيد بما فيه الكفاية. لديها هندى أيضا بعض لطيفة ميزات معالجة الأخطاء والمدمج في وحدة التحكم التصحيح حتى تتمكن من رؤية التسلسل الهرمي قالب وتعيين المتغيرات في لمحة. إضافة ميزات مخصصة لهندى سهلا كما هو إفلاتها في الدليل المساعد وذكرها في القالب.
علامات قالب ليست XML استنادا يا محرر لا ترغب في ذلك.
و{} المحددات هي مجرد الافتراضي، فهي السهل أن نستشف من بين علامات HTML. إذا كنت لا تحب لهم، وتغيير المحددات الخاصة بك أو ربما شيء أكثر XMLish مثل وهناك أيضا الكثير من المساهمات المستخدم لدريمويفر، وما شابه ذلك، ومنحهم نظرة في منطقة مساهمات.
هذا هندى باختصار، ونأمل يمكنك إضافتها إلى ترسانة الخاص بك من الأدوات لبناء تطبيقات الويب. لمعرفة الحقيقة أكثر من ذلك، قراءة أعلى اليدوي إلى أسفل، والانضمام إلى المنتديات ونرى ما الناس يبحثون الميزات:.
التخزين المؤقت: هندى يوفر ميزات التخزين المؤقت غرامة الحبيبات للتخزين المؤقت كل أو أجزاء من صفحة ويب المقدمة، أو ترك أجزاء uncached. يمكن للمبرمجين تسجيل ظائف القالب كما cacheable أو عدم cachable، الصفحات المخزنة مؤقتا المجموعة إلى الوحدات المنطقية لتسهيل الإدارة، الخ
تكوين الملفات: هندى يمكن تعيين المتغيرات سحبت من ملفات التكوين. يمكن للمصممين قالب حفاظ على القيم المشتركة للعديد من القوالب في مكان واحد دون تدخل من مبرمج، ويمكن بسهولة المتغيرات التكوين تكون مشتركة بين البرمجة وعرض أجزاء من التطبيق.
الأمن: قوالب لا تحتوي على كود PHP. لذلك، لا أطلق العنان لمصمم القالب مع القوة الكاملة لPHP، ولكن فقط مجموعة فرعية من وظائف تتاح لهم من مبرمج (رمز التطبيق).
سهلة الاستخدام والحفاظ عليها: المصممين صفحة ويب لا تتعامل مع تركيب كود PHP، ولكن بدلا من ذلك على بناء جملة النموذجيه سهل الاستخدام لا تختلف كثيرا عن سهل HTML. القوالب هي تمثيل قريبة جدا من الناتج النهائي، وتقصير كبير في دورة التصميم.
معدلات متغير: محتويات المتغيرات المخصصة يمكن بسهولة تعديل في عرض الوقت مع المعدلات، مثل عرض في جميع العلوية الحالة، والتمر التنسيق، اقتطاع كتل النص، إضافة مسافات بين الأحرف، نجا أتش تي أم أل الخ مرة أخرى، وهذا هو أنجزت بدون أي تدخل من مبرمج.
وظائف قالب: وظائف كثيرة متاحة للمصمم قالب للتعامل مع المهام مثل توليد شرائح كود HTML (القوائم المنسدلة والجداول، والنوافذ المنبثقة، وما إلى ذلك)، وعرض المحتوى من القوالب الأخرى في الخط، حلقات عبر صفائف من المحتوى، وتنسيق النص لإخراج البريد الإلكتروني، وركوب الدراجات على الرغم من الألوان، الخ
مرشحات: مبرمج لديه السيطرة الكاملة على انتاج قالب وترجمة المحتوى القالب مع مرشحات قبل، بعد الفلاتر والمرشحات الانتاج.
الموارد: يمكن سحب قوالب من أي عدد من المصادر من خلال إنشاء معالجات جديدة للموارد، ثم استخدامها في القوالب.
الإضافات: تقريبا يتم التحكم في كل جانب من جوانب هندى من خلال استخدام الإضافات. أنها عادة ما تكون سهلة كما إفلاتها في الدليل المساعد ثم ذكرها في القالب أو استخدامهم في التعليمات البرمجية للتطبيق. العديد من المساهمات المستخدم المجتمع وتتوفر أيضا. (راجع قسم الإضافات من المنتدى ويكي).
فيرفكس: ساهم كثير من المستخدمين المجتمع إضافات تتوفر مثل ترقيم الصفحات، التحقق من صحة النموذج، قطرة القوائم أسفل، ترجمة متفق التسجيل جامعو، وما إلى ذلك تساعد هذه الأدوات تسريع عجلة التطوير والتنمية، ليست هناك حاجة لإعادة اختراع العجلة أو رمز التصحيح التي هي مستقرة وجاهزة للنشر بالفعل. (راجع قسم إضافات المنتدى ويكي).
التصحيح: هندى يأتي مع وحدة التصحيح المدمج في ذلك مصمم قالب يمكن أن يرى كل من المتغيرات المحددة ومبرمج يمكن تحقيق قالب تقديم سرعات.
تجميع: هندى يجمع القوالب إلى رمز PHP وراء الكواليس، والقضاء على وقت التشغيل إعراب القوالب.
الأداء: هندى يؤدي بشكل جيد للغاية، على الرغم من مجموعة من الخصائص واسعة. معظم قدرات هندى تكمن في الإضافات التي يتم تحميلها عند الطلب. هندى يأتي مع العديد من أدوات العرض، والتقليل من رمز التطبيق الخاص بك، والناتجة في أسرع، وأقل عرضة للخطأ تطوير التطبيقات / نشر. الحصول على تجميع قوالب هندى لملفات PHP داخليا (مرة واحدة)، والقضاء المكلفة بمسح ملف قالب والاستفادة من سرعة PHP مسرعات المرجع رمز.
ما هو الجديد في هذا الإصدار:
العودة التغييرات وصول السوبر العالمية، والاعتماد بدلا من ذلك على USE_SUPER_GLOBALS للأمن
ما هو الجديد في الإصدار 2.6.23:
backticks قطاع من {الرياضيات} المعادلات (mohrt)
رمي الخطأ عند وجود القالب ولكن لا يمكن قراءتها (mohrt)
ما هو الجديد في الإصدار 2.6.22:
هذا الإصدار يتناول مشكلة واجهتها مع الافراج هندى 2.6.21 ومحرك علة PCRE في PHP 5.2. تمت إزالة طريقة تسلسل لتجنب الأخطاء. طريقة تسلسل سوف تظهر من جديد في هندى 3.
11 May 15
البرامج الأخرى من المطور New Digital Group, Inc.
لم يتم العثور على التعليقات