akhbarmohandesi به روزترين اخبار نظام مهندسي
|
در دومي بخش از تحليل ليست پباده سازي قالب وردپرس , با يك نمايش حقيقي در وردپرس , ميخواهيم با ساختارهايي آشنا شويم كه در پروژه هاي ماهر و پيچيده قالب وردپرس ميتوانيم از آنها استعمال كنيم . در بنا شده در اكثري از قالب هاي توسعه يافته روز عالم در ماركت هاي ميان المللي , از اين روش ها براي ساخت يك ساختار قالب وردپرس شي گرا , استعمال مي نمايند . اين به اين معنا است كه در پباده سازي ساختار قالب و در اكثري از مورد ها ( زيرا توابع پركاربرد كه مضاعف فراخواني ميشوند ) از ساختار قالب وردپرس شي گرا يا اين كه به عبارتي به كارگيري از كلاس ها و شي ها , استعمال مي شود . استعمال از قالب وردپرس شي گرا سبب مي شود تا قالب وردپرس شما ساختار يافته خيس و تروتميز خيس بوده و تغييرات آتي در آن فراوان راحت خيس انجام پذيرد . مهيا سازي ساختار قالب وردپرس شي گرا نصيب نخستين : ساخت يك Auto loader براي قالب وردپرس همان گونه كه ميدانيد , ساختار قالب وردپرس به طور ماجولار بوده و شما با قرار دادن پوشه هاي متفاوت ساختار قالب در كنار همديگر , نظير قطعات جورچين , ميتوانيد صفحه هاي تارنما خويش را نمايش بدهيد . براي اينكه بتوانيد از پوشه هاي متعدد در قالب وردپرس استعمال نمائيد , بايستي آنانرا include نمائيد . اين فرمان مخصوصا در فولدر functions . php واقعه مي افتد . در پروژه هاي بزرگ خيس , اين افزودن زياد بسيار خواهد شد , لذا براي كاهش تكرار اين include ها , ميتوانيم از ساختاري به صورت ذيل و از يك كلاس autoloader به كارگيري نمايييم : ساخت يك دايركتوري با اسم app در باطن دايركتوري قالب به مثل ساختار ذيل , قرار دادن يك دايركتوري براي كلاس هاي مورد استعمال در قالب با اسم classes در باطن آن , ساخت يك كلاس با اسم autoloader . php در باطن دايركتوري app app ( dir ) - classes ( dir ) - autoloader . php ( php class file ) بخش بندي كردي فولدر functions . php براي آراسته بودن كدهاي مندرج : اساسا اينجانب از اين ساختار روبرو به كار گيري ميكنيم و قسمت هاي setup و includes و hooks و shortcodes و small functions را در فولدر functionsphp توليد ميكنم تا درون اين پوشه ساختار منظم تري داشته باشد ( اما در ساختار قالب وردپرس شي گرا احتمالا خيلي از اين بخش استعمال نگردند ) . /***** Includes *****/ include ( app/autoloader . php ( ; include ( constant . php ( ; معرفي كلاس autoloader . php در فولدر fucntions . php و در بخش includes ساخت يك پوشه با اسم constant . php و تعريف آن در پوشه functions . php : همه اثبات هاي قالب درين پوشه مطابق ذيل تعريف خواهند شد تعريف اثبات هاي MSN _ THEME _ PATH و MSN _ THEME _ URL و MSN _ THEME _ VIEW در پوشه constant . php ( تمامي نام ها با يك prefix آغاز ميشود تا از تداخل در بين اسم ها دوري گردد ) < ? php /***** Define constants in theme *****/ define ( ' MSN _ THEME _ PATH ' , get _ template _ directory ( ) ) ; define ( ' MSN _ THEME _ URL ' , get _ template _ directory _ uri ( ) ) ; define ( ' MSN _ THEME _ VIEW ' , THEME _ PATH . DIRECTORY _ SEPARATOR . ' views ' ) ; ساخت كلاس autoloader مطابق كد هاي تحت شناخت با تابع spl _ autoload _ register در كلاس autoloader در متد آفريننده كلاس autoloader , از يكي توابع كتابخانه استاندارد PHP با اسم spl _ autoload _ register به كار گيري مي شود . در واقع همه تابع هايي كه در مسير اجرا قرار داده نشده اند ( يا اين كه include نشده اند ) بدين متد پاس داده شده و متد autoload مو جود دراين كلاس بر روي آنها فراخواني مي شود تا به برنامه بيشتر شوند . در واقع اين سبب كاهش حجم كدنويسي و include هاي متواتر به وسيله برنامه نويس خواهد شد . اين تكنيك يكياز شايسته ترين تكنيك ها براي كاهش مصرف خاطر ميباشد . در واقع با اين روش تنها كدهايي به كاغذ attach ميشوند كه حقيقتا به آنها نياز داشته باشيم . < ? php /***** Autoloder class *****/ class Autoloader { public function _ _ construct ( ) { spl _ autoload _ register ( array ( $this , ' autoload ' ) ) ; } public function autoload ( $class _ name ) { $file = $this - >convert _ class _ to _ file ( $class _ name ) ; if ( is _ file ( $file ) && file _ exists ( $file ) && is _ readable ( $file ) ) { //var _ dump ( $file ) ; include $file; } } public function convert _ class _ to _ file ( $class _ name ) { $class = strtolower ( $class _ name ) ; $class = ' class - ' . $class; $filename = $class . ' . php ' ; return THEME _ PATH . DIRECTORY _ SEPARATOR . ' app ' . DIRECTORY _ SEPARATOR . ' classes ' . DIRECTORY _ SEPARATOR . $filename; } } new Autoloader ( ) ; يكسري نكته درباره ي كلاس Autoloader بعد از تعريف كلاس , فورا يك شي از اين كلاس ساخته مي شود كه همواره براي برنامه قابل دسترس باشد براي به كار گيري از اين روش بايستي يك قاعده براي نامگذاري كلاس هاي خويش تعيين نماييم كه بسته به آن بتوانيم با هربار احراي تابع autoload فولدر متبوع را به برنامه خويش بيشتر كرده و كلاس متبوع خويش را بارگذاري نماييم . همگي جور بندي هايي كه در جور MVC مورد استعمال قرار ميگيرند را نيز ميتوانيم در ساختار قالب وردپرس شي گرا , براي خويش پياده سازي نماييم . اين بسته به نياز شما و سبك دلخواه برنامه نويسي بوسيله شما خواهد بود . در متد autoload , قبلي از include كردن فولدر , حتما مي بايست از صدق پوشه بودن آن و خوانايي پوشه مطمئن شويم . در واقع جايجاي كه قصد داريم تا روي يك پوشه كار كنيم , حتما بايستي از سه تابع شرطي : is _ file و file _ exists و is _ readable به كارگيري كرده و بعداز مطمئن شده از درستي فولدر و خوانايي آن به وسيله برنامه , ادامه علميات در برنامه را انجام دهيم . اكنون براي نشاني دهي هاي خويش در قالب وردپرس هم ميتوانيم از يك ساختار شي گرا استعمال نماييم . براي اين كار ميتوانيد فرايند پايين را دنبال فرماييد : تعريف كلاس Asset در درون دايركتوري classes : در حيث داشته باشيد كه اسم كلاس ها تعريف شده دارنده قاعده اي ميباشند كه در كلاس autoloader تعريف شدهاست تا اين كلاس بتواند با بسته به اسم آنها , فولدر مرتبط با آنها را در برنامه include كند . اسم اين كلاس را class - asset . php ميگذاريم . در باطن فولدر class - asset . php كدهاي تحت را براي كلاس asset تعريف ميكنيم . براي متد فراخواني css و js و عكس ها درين كلاس , از متد استاتيك به كارگيري مي شود , تا دوچندان در مصرف ياد صرفه جويي گردد .
امتیاز:
بازدید:
|
|
[قالب وبلاگ : سایت آریا] [Weblog Themes By : sitearia.ir] |