اسمارتی ( به انگلیسی : smarty ) یک موتور الگوی وب[ یادداشت ۱] برای پی اچ پی است که امکان جداسازی کدهای نمایشی ( اچ تی ام ال، سی اس اس و. . . ) را از منطق برنامه های تحت وب می دهد به طوری که منطق کاری[ یادداشت ۲] به صورت جداگانه ای از کدهای نمایشی عملیات را انجام می دهند و به این ترتیب طراحان وب و برنامه نویسان به صورت جداگانه یک ساختار وب را طرح ریزی می کنند. [ ۱]
اسمارتی یک چارچوب نرم افزاری تحت وب نیست، اسمارتی همچنین شباهتی به ام وی سی ندارد و سازوکاری متفاوت از چارچوب های نرم افزاری مانند چارچوب زند، کیک پی اچ پی، جوملا و سایر چارچوب هایی که برای پی اچ پی به کار می روند دارد. [ ۱]
اسمارتی پس از تجزیه کردن[ یادداشت ۳] هر الگو[ یادداشت ۴] یک کد پی اچ پی از فایل تولید می کند ( به جای پرونده دودویی ) و سپس زمانی که صفحه نمایش داده می شود، اسمارتی این فایل را به جای فایل الگو فراخوانی می کند و بدین ترتیب از تجزیه کردن دوبارۀ فایل الگو جلوگیری می شود، اسمارتی در مورد اینکه چه زمانی عمل کامپایل را انجام دهد هوشمند عمل می کند و زمانی که فایل الگو توسط برنامه نویس تغییر کند، اسمارتی یک فایل جدید تولید می کند و دیگر نیازی به تغییر دستی فایل کامپایل شده نیست. [ ۲]
هدف اسمارتی جداسازی ساختار منطقی از ساختار نمایشی است و نه جداسازی ساختار نمایشی از پی اچ پی و این یکی از امتیازهای اسمارتی است چرا که در هدف نهایی یک موتور مدیریت الگو، نباید تمام منطق کاری را از اچ تی ام ال حذف کرد بلکه باید این دو ساختار را به صورتی از هم جدا کرد. برای مثال منطقی را در نظر داشته باشید که در آن باید چندین کاربر از پایگاه داده فراخوانی شوند و حال منطق نمایشی[ یادداشت ۵] را در نظر بگیرید که باید کاربران را در سه ستون نمایش دهد در این حالت راه حل نامناسب این است که کاربرانی که از پایگاه داده فراخوانی کرده ایم را در یک تابع که سه آرایه بازمی گرداند فراخوانی کنیم، چرا که از لحاظ منطقی این کاری نیست که باید با داده ها انجام شود و بدون داشتن راه حلی منطقی در فایل الگو، مجبور به کاری می شوید که نباید انجام دهید. [ ۳]
ارث بری از الگو رویکردی است برای مدیریت کردن الگوهای اسمارتی که شبیه به تکنیک برنامه نویسی شیءگرا عمل می کند، در این روش به جای فراخوانی کردن بخش های مختلف یک صفحه با استفاده از چندین {include. . . } می توان تنها محتوایاتی از آن صفحه را فراخوانی کرد شبیه به عملی که در شیءگرایی برای به ارث بردن کلاس ها انجام می شود، این کار در جایی که الگوها با هم صفات و عملیات مشترکی دارند و تنها در بخش های کوچکی با هم متفاوت هستند باعث می شود که الگوها کوچک و در عین حال کارا شوند، این روش اشاره ای به تجمیع در نمودار Use - Case در مهندسی نرم افزار دارد. [ ۴]
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفاسمارتی یک چارچوب نرم افزاری تحت وب نیست، اسمارتی همچنین شباهتی به ام وی سی ندارد و سازوکاری متفاوت از چارچوب های نرم افزاری مانند چارچوب زند، کیک پی اچ پی، جوملا و سایر چارچوب هایی که برای پی اچ پی به کار می روند دارد. [ ۱]
اسمارتی پس از تجزیه کردن[ یادداشت ۳] هر الگو[ یادداشت ۴] یک کد پی اچ پی از فایل تولید می کند ( به جای پرونده دودویی ) و سپس زمانی که صفحه نمایش داده می شود، اسمارتی این فایل را به جای فایل الگو فراخوانی می کند و بدین ترتیب از تجزیه کردن دوبارۀ فایل الگو جلوگیری می شود، اسمارتی در مورد اینکه چه زمانی عمل کامپایل را انجام دهد هوشمند عمل می کند و زمانی که فایل الگو توسط برنامه نویس تغییر کند، اسمارتی یک فایل جدید تولید می کند و دیگر نیازی به تغییر دستی فایل کامپایل شده نیست. [ ۲]
هدف اسمارتی جداسازی ساختار منطقی از ساختار نمایشی است و نه جداسازی ساختار نمایشی از پی اچ پی و این یکی از امتیازهای اسمارتی است چرا که در هدف نهایی یک موتور مدیریت الگو، نباید تمام منطق کاری را از اچ تی ام ال حذف کرد بلکه باید این دو ساختار را به صورتی از هم جدا کرد. برای مثال منطقی را در نظر داشته باشید که در آن باید چندین کاربر از پایگاه داده فراخوانی شوند و حال منطق نمایشی[ یادداشت ۵] را در نظر بگیرید که باید کاربران را در سه ستون نمایش دهد در این حالت راه حل نامناسب این است که کاربرانی که از پایگاه داده فراخوانی کرده ایم را در یک تابع که سه آرایه بازمی گرداند فراخوانی کنیم، چرا که از لحاظ منطقی این کاری نیست که باید با داده ها انجام شود و بدون داشتن راه حلی منطقی در فایل الگو، مجبور به کاری می شوید که نباید انجام دهید. [ ۳]
ارث بری از الگو رویکردی است برای مدیریت کردن الگوهای اسمارتی که شبیه به تکنیک برنامه نویسی شیءگرا عمل می کند، در این روش به جای فراخوانی کردن بخش های مختلف یک صفحه با استفاده از چندین {include. . . } می توان تنها محتوایاتی از آن صفحه را فراخوانی کرد شبیه به عملی که در شیءگرایی برای به ارث بردن کلاس ها انجام می شود، این کار در جایی که الگوها با هم صفات و عملیات مشترکی دارند و تنها در بخش های کوچکی با هم متفاوت هستند باعث می شود که الگوها کوچک و در عین حال کارا شوند، این روش اشاره ای به تجمیع در نمودار Use - Case در مهندسی نرم افزار دارد. [ ۴]
wiki: اسمارتی