آشنایی با کدایگنایتر - بخش اول
مقدمه
اشنایی با CodeIgniter
فریمورک CodeIgniter بر پایه معماری MVC میباشد. MVC نرم افزار را به سه قسمت Model و View و Controller تقسیم می کند. که هر کدام از این سه قسمت وظیفه خاصی را در چرخه حیات نرم افزار بازی می کنند.
- Model
مفاهیم استفاده شده در نرم افزار تحت عنوان Model ها ایجاد می شوند. در MVC هریک از Class های ما یک Model هستند. Model در Logic برنامه هیچ نقشی ندارد. ارتباط با پایگاه داده هم در Model صورت می گیرد و Model ها پل ارتباطی بین نرم افزار و پایگاه داده نیز هستند. - View
View رابط کاربری نرم افزار است و می توان گفت فرم های نرم افزار و تمام چیزهایی که کاربر با آنها در ارتباط است تحت عنوان View در نرم افزار قرار می گیرد. View نیز هیچ نقشی در Logic نرم افزار ندارد و تنها پل ارتباطی بین کاربر و سایر بخش های نرم افزار است. تاکید می کنم که View هیچ تصمیم گیری انجام نمی دهد و فقط نمای بیرونی نرم افزار است. - Controller
Controller ها قلب تپنده نرم افزارهای MVC هستند. تمام تصمیم گیری ها و Logic نرم افزار در Controller قرار می گیرد و Controller پل ارتباطی Model و View است. در واقع با بیانی ساده می توان گفت Controller تصمیم می گیرد که چه داده ای از کدام Model دریافت شود و جهت نمایش به کدام View ارسال شود.
کُدایگنایتر
کُدایگنایتر (به انگلیسیCodeIgniter ) یک چارچوب نرمافزاری تحت وب متنباز است که برای ساختِ وبگاههای پویا بهکار میرود. این فریمورک که با زبان پیاچپی نوشته شدهاست کار توسعهٔ نرمافزار را در سنجش با کدنویسی از آغاز شتاب میبخشد. این شتاببخشی توسط کتابخانههای این فریمورک انجام میشود که بسیاری از آنها کارهای رایج را بهسادگی انجام میدهند.
ویژگیها
- پشتیبانی از چندین پایگاهداده
- دستیابی به پایگاه داده از طریق ORM
- مدیریت SESSION
- اعتبارسنجی داده و فُرم
- کشگذاری همهٔ صفحه
- کلاس قالبگذار
- پشتیبانی از افزودن کلاس، افزونه و HOOKS
اما دیگر ویژگیهایی که کدایگنایتر را متمایز میکند، عبارتند از:
- سازگاری با PHP ۴. بهکارگیری PHP۵ توانایی زنجیرسازی متدها را فراهم میکند.
- کد بسیار سبک
- نصب و ساختار پوشههای آسان
- ثبت خطاها
- رهیابی انعطافپذیر ِ URIها
همچنین دیگر ویژگیهایی را ارایه میکند که هنوز در دیگر فریمورکها به طور پیشگزیده ارایه نشدهاست.
- امنیت و پالایش XSS
- کلاس فرستادن ایمیل که از پیوستها، ایمیلهای HTML ای یا متنی، پروتکلهایی چون SMTP، sendmail و Mail پشتیبانی میکند.
- کتابخانه دستکاری تصویر (کارهایی چون: بریدن، چرخاندن، تغییر اندازه دادن و …). پشتیبانی از GD، ImageMagic و …
- کلاس بارکننده فایل
- کلاس FTP
- بومیسازی
- صفحهبندی
- رمزگذاری داده
- کلاس تقویم
- کلاس User Agent (تشخیص مرورگر)
- کلاس رمزگذاری فایلهای Zip
- ساخت URLهای کاربرپسند
کتابخانهای بزرگ از helperها
ساختار پوشه در CI
شاختار پوشه های CI بشرح زیر میباشد:
|
فایل های نرم افزار |
|
کلاس ها. که در شکل گیری URL ها نقش دارند. |
|
مدل ها. کلاس های ارتباط با پایگاه داده |
|
فایل های نمایشی (HTML) |
|
کلاس های پیکربندی. |
|
کتابخانه های شخصی که توسط برنامه نویس نوشته داده شده |
|
امکان تعریف فایل عای ترجمه |
|
صفحات خطا |
|
پوشه سورس CI |
|
فایل های اصلی و پایه |
|
درایور های ارتباط با پایگاه داده |
|
کلاس کمکی |
|
کتابخانه ها |
۳ پوشه اصلی و کلیدی نرم افزار در عکس زیر نمایش داده شده است.
کلاس های کنترلر
URLهای تولید شده بوسیله ی CodeIgniter تمیز هستند و برای موتورهای جستجو مناسب می باشند. بجای استفاده از «Query String» استاندارد، از URLهایی مانند زیر استفاده می کند:
example.ir/news/article/123
آدرسی بصورت زیر را
http://sample.com/index.php/ClassName/FunctionName /parameter
در نظر بگیرید، ClassName اسم کلاس و FunctionName اسم متد و parameter شامل پارامتر ارسالی خواهد بود.
ب عنوان مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
class test_class extends CI_Controller { function __construct() { parent::__construct(); { function index() { …. } function view ($param) { …. } { |
برای فراخوانی متد index باید آدرس زیر را فراخوانی کرد.
http://sample.com/index.php/test_class /index
برای صدا کردن متد view و ارسال پارامتر (به عنوان مثال عدد ۱۲۳) باید آدرس
http://sample.com/index.php/ test_class /view/123
را فراخوانی کرد.
نکته: به ازای تمامی متد های کلاس test_class متد __construct همیشه اجرا خواه شد. لذا از این متد میتوان برای تصدیق هویت و مقداردهی اولیه استفاده کرد.
کلاس های کنترلر
URLهای تولید شده بوسیله ی CodeIgniter تمیز هستند و برای موتورهای جستجو مناسب می باشند. بجای استفاده از «Query String» استاندارد، از URLهایی مانند زیر استفاده می کند:
example.ir/news/article/123
آدرسی بصورت زیر را
http://sample.com/index.php/ClassName/FunctionName /parameter
در نظر بگیرید، ClassName اسم کلاس و FunctionName اسم متد و parameter شامل پارامتر ارسالی خواهد بود.
ب عنوان مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
class test_class extends CI_Controller { function __construct() { parent::__construct(); { function index() { …. } function view ($param) { …. } { |
برای فراخوانی متد index باید آدرس زیر را فراخوانی کرد.
http://sample.com/index.php/test_class /index
برای صدا کردن متد view و ارسال پارامتر (به عنوان مثال عدد ۱۲۳) باید آدرس
http://sample.com/index.php/ test_class /view/123
را فراخوانی کرد.
نکته: به ازای تمامی متد های کلاس test_class متد __construct همیشه اجرا خواه شد. لذا از این متد میتوان برای تصدیق هویت و مقداردهی اولیه استفاده کرد.
[…] قبلی بعدی […]