සරලවම කිව්වොත් symfony කියන්නේ web applications නිර්මාණය කිරීම සදහා වන, PHP වලින් ලියන ලද framework එකක්. Pure PHP පාවිච්චි කරනවට වඩා symfony පාවිච්චි කරන එකෙන් අපිට ගොඩක් පහසුකම් සැලසෙනවා. අපේ application එක එක හොද පාලනයක් ඇතිව හසුරුවන්න, පැහැදිලි code එකක් ලියන්න, ඒ වගේම MVC (Model-View-Controller) architecture එකට අනුකූලව application ලියන්න symfony අපට උදව් වෙනවා. අපිට application එක භාගයක් develop කරල තියෙද්දී වුනත් DBMS එක වෙනස් කරගන්න අවශ්යය වුනොත් (උදා :- MySQL වල ඉදන් Oracle වලට) ඒකට පවා symfony අපිට පහසුකම් සලසනවා. ඒ තරම් ලොකු configurability එකක් symfony පාවිච්චි කරල තියෙන application එකකට තියෙනවා.
symfony application එකක් configure කිරීම සදහා පාවිච්චි කරල තියෙන්නේ YML (YAML) කියන file format එක. YML කියන්නේ භාවිතයට සහ තේරුම්ගැනීමට ඉතමත් පහසු, XML වලටත් වඩා සරලව data දක්වන්න පුලුවන් markup language එකක්. අපේ application එකේ database එක නිර්මාණය කරන එකත් මේවගේ සරල YML file එකකින් කරගන්න පුලුවන්.
symfony වල විශේෂත්වයක් තමයි internationalization වලට support කරන එක. ඒ කිව්වේ අපිට පහසුවෙන් application එකේ language එක change කරගන්න පුලුවන්. ඒ සදහා අපි වෙනම XML file එකක් පාවිච්චි කරනවා අදාල වචන ටික store කරගන්න.
ඒ වගේම තවත් දෙයක් තමයි symfony පාවිච්චි කරලා හදන form එකක තියෙන widgets (HTML form elements) වලට වෙන වෙනම server side validation rules add කරන්න පුලුවන් වීම. මේ නිසා අපිට client side validation නැති වුනත් data validate කරන්න additional codes ලියන්න අවශ්යය වෙන්නේ නැහැ. ඒ වගේම application එකට එවන unauthorised data වලිනුත් application එක ආරක්ෂාකරගන්න පුලුවන් මේ validators තියෙන නිසා.
symfony වල විශේෂත්වයක් තමයි internationalization වලට support කරන එක. ඒ කිව්වේ අපිට පහසුවෙන් application එකේ language එක change කරගන්න පුලුවන්. ඒ සදහා අපි වෙනම XML file එකක් පාවිච්චි කරනවා අදාල වචන ටික store කරගන්න.
ඒ වගේම තවත් දෙයක් තමයි symfony පාවිච්චි කරලා හදන form එකක තියෙන widgets (HTML form elements) වලට වෙන වෙනම server side validation rules add කරන්න පුලුවන් වීම. මේ නිසා අපිට client side validation නැති වුනත් data validate කරන්න additional codes ලියන්න අවශ්යය වෙන්නේ නැහැ. ඒ වගේම application එකට එවන unauthorised data වලිනුත් application එක ආරක්ෂාකරගන්න පුලුවන් මේ validators තියෙන නිසා.
symfony වල MVC architecture එක ගෑන පොඩ්ඩක් සදහන් කලොත්, DBMS සමග data transaction කිරීමත්, application එකේ business logic එක ක්රියාත්මකවීමත් Model Layer එකෙනුත්, ඒ data පාවිච්චි කරල Graphical User Interface එකේ ඒවා පෙන්වන එක View Layer එකෙනුත්, application එකට එන request handle කිරීම සහ ඒ අනුව response එකක් දීම Control Layer එකෙනුත් සිදු වෙනවා.
symfony framework එක ඈතුලේ, databse transactions පහසුවෙන් කරගන්න Doctrine කියන ORM (Object Relational Mapper) එක පාවිච්චි කරල තියෙනවා. හරියට java වල ORM එකක් විදියට hibernate පාවිච්චි කරනව වගේ. Doctrine ගැන තවත් ලිපියකින් කතාකරන්න බලාපොරොත්තු වෙනවා.
ලිපියේ මුලින් සදහන් කරල තියෙන විදියට DBMS එක මාරු කරන විදිය ගැන පොඩ්ඩක් කතාකලොත්, ඒ විදියට database එක මාරුකරගන්න හැකිවෙන්නේ අපේ database එක සහ Doctrine භාවිතා කරලා තියෙන Model Layer එකත් අතර PDO(PHP Data Object) Layer එකක් තියෙන නිසා. මේ PDO Layer එක නිසා අපි පාවිච්චි කරන DBMS එක ගැන තැකීමකින් තොරව එහි තියෙන data වලට access කරන්න පුලුවන්. මේ හැකියාව symfony වලට ලෑබිලා තියෙන්නේ data transactions වලට ORM එකක් පාවිච්චි කරලා තියෙන නිසායි.
symfony ගැන මා දන්න දේවලින් ටිකක් ඔබ එක්ක බෙදාගන්න එක තමයි මේ ලිපියේ අරමුණ. ඔබ මේ ලිපිය කියවීමෙන් ඒ මගේ අරමුණ සාර්තක වුනානම් ලිපිය පිලිබද ඔබේ අදහස දැනගැනීමට කැමැත්තෙමි.