Zend چارچوب بدن برچسب یاور نمایش

توسط استیون لوید Watkin ، شنبه 2010 اوت 21 11:13
Photo from  http://www.flickr.com/photos/daniello/

عکس از http://www.flickr.com/photos/daniello/

خلاصه

در اینجا ایجاد یاور نظر من بحث برای اصلاح تگ های متنی ، و به ویژه تگ های بدن است. ایجاد شده نمایش یاور اجازه می دهد تا قابلیت شبیه به سر * / یاران مشاهده inlineScript در حال حاضر در استاندارد Zend چارچوب یاران مشاهده است ، اما اجازه می دهد تا تغییرات برنامه ریزی شده از ویژگی های برچسب. قطعا از بررسی صفحه نسخه ی نمایشی و کد در github.

انگیزه

استاندارد Zend یاران چهارچوب نمایش مجموعه ای بزرگ از ابزار ساده برای نمایش کارهای این جهانی و اجازه می دهد برای اصلاح / علاوه بر این از اسکریپت ها و بلوک های هدر (به طور کلی در طرح برگزار شد) از درون نمایش بدون استفاده از هک زشت (به عنوان مثال سر * / inlineScript یاران مشاهده).

پس از من به مناسبت پیدا کرده اند نیاز به ایجاد تغییرات در تگ <body>، به عنوان مثال با اضافه کردن onload ، کلاس ، و یا غیره ویژگی سبک من هم لازم می شود قادر به انجام این از درون یاران مشاهده دیگر. نگاهی به این مثال زیر را ساختگی...

در وب سایت ایکس ، صفحات خاص شامل استاندارد باشگاه فرم. این اشکال در داخل باشگاه یاران نمایش برای راحتی برگزار می شود. به طور کلی از آن شده است این تصمیم خود را شامل باشگاه CSS کلاس در تگ بدن و تنها آنها را اضافه کنید در صورت لزوم. ) وجود دارد شاید مشاهده چندین یاران در صفحه ای که نیاز به اضافه کردن ویژگی های خود بدن به برچسب (من گفت که ساختگی

کد موجود در مخزن دستگاه گوارش من @ github و صفحه نسخه ی نمایشی .

چگونه کار می کند

هنگامی که بدن ایجاد برچسب یاور نظر من به زودی متوجه شدم که بسیاری از کد های خاص بود به آنچه که من در حال توسعه بود ، بنابراین من از جیبش در آورد قابلیت های معمول به کلاس انتزاعی نیست. بتن ریزی با کلاس مجرد ممکن است برای تغییر هر تگ را در راه همانند برچسب بدن در اینجا مورد بحث ساخت کد خیلی بیشتر versitile.

در قسمت پایین هود (پس به صحبت می کنند) فعال است در آن از * سر و یاران مشاهده inlineScript است. با بهره گیری از آن برای ذخیره Zend_View_Helper_Placeholder_Container_Standalone صفات و ارزش های خود را تا زمانی که مورد نیاز است. ظرف خود استفاده می کند Zend_Registry برای ذخیره مقادیر زیر کلید تعریف شده در کلاس (اگر شما نگاهی به واحد آزمون های رجیستری را پاک کنم پایین بعد از هر آزمون).

کد را در جا به خوبی با " Zend_Layout برهنه و Zend_View "کد من چهارچوب نوشت : در مورد دو هفته پیش و یا به عنوان بخشی از استاندارد Zend MVC را نصب کنید.

استفاده

کلاس باید بسیار ساده برای استفاده. اولا دو ورودی در داخل اسکریپت مورد نیاز طرح خود را به شرح زیر است :

  <؟ پی اچ پی این اکو $> bodyTag ()؟>
 <؟ پی اچ پی این اکو $> bodyTag () --> toString (Pro_View_Helper_AbstractTag : : بسته)؟> 

نکته : شما باید نام کلاس برای تغییر باید یاور نظر شما حرکت به کتابخانه خود تغییر دهید. بدیهی است که ثابت قابل دسترسی می باشد از طریق اجرای (bodyTag) و همچنین از طریق کلاس انتزاعی.

نمونه ای از ایجاد تغییرات به برچسب بدن خود را با استفاده یاور به منظور اکو myclass" class="nihilo <bodystyle="text-align-left؛ width: 80em"> است :

  <؟ پی اچ پی
 این $> - bodyTag ('کلاس' ، 'nihilo')
     -- bodyTag> ('سبک' ، 'متن چین : سمت چپ')
     -- bodyTag> ('سبک' ، 'عرض : 80em' ، ، دروغ ، '؛')
     -- bodyTag> ('کلاس' ، 'myclass')
 ؟> 

این می تواند در طول فایل مشاهده ، انجام شده در یاران مشاهده چند ، و در پرونده طرح (ارائه شده خود را قبل از تگ نوشته شده است از بدن). صفات می تواند حذف شود / بازنویسی می توانید در حالی که ارزش افزوده می شود و افزوده (جدا کننده را می توان گذشت). اگر مقدار ویژگی همان است که گذشت چندین بار تنها یک نسخه تنها با ویژگی نوشته شده است.

برای نسخه ی نمایشی کامل یا چنگال github مخزن و اجرای فایل demo.php را در مرورگر خود را ، و یا معادل آن بازدید این صفحه به آن را ببینید در عمل. استفاده از demo.php اسکریپت فرض بر داشتن Autoloader Zend (یا مشابه آن) در حال حاضر راه اندازی.

ایجاد خود را یاور برچسب

برای پیاده سازی یاور نظر خود را به سادگی گسترش برچسب کلاس انتزاعی و بازنویسی خواص کلاس شرح زیر است :

  • _regKey $ : کلید منحصر به فرد برای برچسب (مورد استفاده برای Zend_Registry)
  • $ _validAttributes : آرایه ای از نامهای ویژگی معتبر ، باید با حروف کوچک تا با رعایت W3C
  • _selfClosing $ : مقدار بولی برای مشخص کردن اگر تگ بسته شدن خود یا نه ، به عنوان مثال <br/>
  • _tagName $ : نام تگ (بدن یعنی در این مثال)

بنابراین ، در نهایت کد برای نمایش bodyTag یاور خود ، خود را بسیار جمع و جور :

 / ** * یاور نمایش برای برچسب بدن * * * * @ نویسنده لوید Watkin * @ * از 21/08/2010 @ * بسته نرم افزار @ subpackage * ViewHelper / کلاس Pro_View_Helper_BodyTag گسترش Pro_View_Helper_AbstractTag {/ ** * کلید رجیستری برای حفره یا سوراخ * * * * @ * رشته ور / حفاظت $ _regKey 'Pro_View_Helper_BodyTag' ؛ / ** * کدام ویژگی هستند * * * * معتبر در حال حاضر تنها STF ویژگی پشتیبانی * (ها = اکید ، تی = انتقالی ، ج = قابهای) * * @ ببینید http://www * @ *.w3schools.com/tags/tag_body.asp آرایه متغیر / حفاظت $ _validAttributes = آرایه (/ * استاندارد * صفات 'دیر' ، 'کلاس' / ، 'شناسه' ، 'زبان' ، 'سبک' ، 'عنوان '،' کاپرفیلد : زبان '، / * رویداد * صفات /' onclick '،' ondblclick '،' onload '،' onmousedown '،' onmousemove '،' onmouseout '،' onmouseover '،' onmouseup '،' onkeydown ، 'onkeypress' ، 'onkeyup' ، 'onunload' ،) ؛ / ** * خود برچسب پایانی؟  * * * * @ * متغیر بولی / حفاظت $ _selfClosing = کاذب ؛ / ** * * * * * نام برچسب @ * رشته ور / حفاظت $ _tagName 'بدن' ؛} 

اگر شما نگاهی به مخزن نیز وجود دارد گروه آزمون واحد که به طور کامل پوشش عملکرد. تست واحد در نوشته PHPUnit و در BodyTagTest.php فایل.

در نهایت...

در اینجا من به شما نشان داده ایم اجرای من از تگ انتزاعی یاور مشاهده انتزاعی (eek) و بدن اجرای آن برچسب. در حالیکه قابلیت های جاوا اسکریپت می تواند از راه های دیگر اجرا (به غیر از برنامه نویسی سخت در زمان خروجی) چیز دیگر نمی تواند (بدون جاوا اسکریپت است که) بدون تغییر بخش های دیگر از نرم افزار. من امیدوارم که شما در پیدا کردن کلاس های مفید در برنامه شما...

3 پاسخ به "Zend چارچوب بدن برچسب یاور نمایش"

  1. لینکر automagic من است در مورد مسئله در کد ایجاد می شود برای کاپرفیلد پس لطفا چشم پوشی از این موضوع :)

  2. [...]اصلی اینجا هستید : : Evilprofessor.co.uk »Zend چارچوب بدن برچسب نمایش یاور بدون [...]

  3. [...]بیشتر از منبع اصلی : Evilprofessor.co.uk »Zend چارچوب بدن برچسب نمایش یاور تقسیم و [...]

پاسخی بنویسید













تم های پانوراما Themocracy

5 بازدید کنندگان آنلاین
3 مهمان ، 2 رباتها ، 0 کاربران
حداکثر بازدید کننده امروز : 12 در 12:15 UTC
این ماه : 26 در 2011/07/05 12:35 UTC
این سال : 130 در 28-03-2011 22:40 UTC
تمام زمان حال : 130 در 28-03-2011 10:40 UTC