امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش فریمورک codeigniter 3
#1
با سلام و احترام

در این تاپیک قصد داریم به آموزش فریمورک کد ایگنایتر 3  به صورت گام به گام بپردازیم. در پایان آموزش قادر به انجام کارهای زیر خواهید بود:
  • نصب و کانفیگ فریمورک
  • اتصال به دیتابیس
  • کار با دیتابیس و انجام چهار عمل اصلی (Create, Read, Update, Delete) 
  • کار با کنترلر
  • کار با مدل
  • کار با ویو
  • نصب کتابخانه
  • نصب helper
لطفا در این تاپیک پستی ارسال نکنید و برای ثبت سوالات و مشکلات خود تاپیک جداگانه ارسال کنید.

استفاده از آموزش ها فقط با قرار دادن لینک و نام منبع : انجمن کد ایگنایتر فارسی بلامانع است.

با تشکر
لطفا قبل از ارسال هرگونه پست قوانین سایت را مطالعه کنید.
----
وب سایت میثم محمودی
پاسخ
#2
آموزش فریمورک Codeigniter - جلسه 1 : نصب و راه اندازی

معرفی فریمورک Codeigniter

Codeigniter یک فریمورک (Framework) تحت وب متن باز (Open Source) است که با زبان برنامه نویسی PHP نوشته شده است. این فریمورک در تاریخ  9 اسفند 1384 اولین نسخه خود را منتشر کرد و آخرین نسخه آن '3' است که در تاریخ 10 فروردین 139444 منتشر شده است.

 این فریمورک بر مبنای معماری محبوب MVC بنا شده است و جزء 5 فریمورک محبوب و پرکاربرد PHP است و جالب است بدانید راسموس لردورف خالق زبان برنامه نویسی PHP در سخنرانی که داشته است گفته که کد ایگنایتر را دوست دارد.

از ویژگی های این فریمورک می توان به موارد زیر اشاره کرد:
  • داکیومنت بسیار تمیز و آسان

  • سازگاری با همه هاست های اشتراکی 

  • نصب و راه اندازی بسیار سریع

  • یادگیری سریع برای برنامه نویسان php
 

پیش نیازهای یادگیری با فریمورک Codeigniter

برای کار با این فریمورک شما باید زبان برنامه نویسی php را در سطح حداقلی متوسط بدانید و با مفاهیم شی گرایی (OOP) و معماری MVC آشنایی کلی داشته باشید. 

 

امکانات و ابزارهای پیش نیاز فریمورک Codeigniter

برای نصب و راه اندازی نیاز به یک کامپیوتر مجهز به سیستم عامل ویندوز، لینوکس یا مک دارید که البته آموزش ما با سیستم عامل ویندوز انجام خواهد شد. سپس نرم افزار XAMPP و دیگر هیچ!

 

دانلود فریمورک و نصب آن

برای دانلود ابتدا به وب سایت http://www.codeigniter.com/download مراجعه کنید و آخرین نسخه آن که نسخه 3 می باشد را دانلود کنید. پس از دانلود فایل فشرده یک پوشه با نام ci3 در مسیر زیر ساخته

C:\xampp\htdocs\ci3


و سپس آن را از حالت فشرده خارج کنید.

در صورتی که محتویان آن را به درستی قرار داده باشید در صورتی که به آدرس زیر بروید :

http://localhost/ci3

باید با صفحه زیر مواجه شوید:
[تصویر:  ci3-1.jpg?1485446534427]

 [img=0x0]http://meysam.biz/uploads/blog/ci3-1.jpg?1485446534427[/img]

تبریک میگم فریمورک کد ایگنایتر به همین سادگی نصب شد! دنبال مراحل بیشتری بودید؟ ببخشید که مایوس شدید Big Grin

 

پایان جلسه اول

در آموزش بعدی نحوه اتصال به دیتابیس، ساخت جدول و نمایش اطلاعات از دیتابیس را به شما آموزش خواهم داد.
نظرات خود را با ما به اشتراک بگذارید مشتاقانه آماده خواندن آنها هستیم.
لطفا قبل از ارسال هرگونه پست قوانین سایت را مطالعه کنید.
----
وب سایت میثم محمودی
پاسخ
#3
در جلسه اول با نصب و راه اندازی فریمورک کد ایگنایتر آشنا شدیم و در این جلسه می خواهیم اولین برنامه خودمون رو با این فریمورک بنویسیم.
 
گام اول: کنترلر پیش فرض
کد ایگنایتر به صورت پیش فرض از کنترلر Welcome استفاده میکنه و ما باید اون رو ویرایش کنیم. برای ویرایش این کنترلر به آدرس زیر بروید:
C:\xampp\htdocs\ci3\application\controllers\Welcome.php
آن را با ادیتور باز کنید و پس از باز کردن با محتویات به صورت زیر رو به رو خواهید شد:
PHP
کد:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {

    /**
     * Index Page for this controller.
     *
     * Maps to the following URL
     *         http://example.com/index.php/welcome
     *    - or -
     *         http://example.com/index.php/welcome/index
     *    - or -
     * Since this controller is set as the default controller in
     * config/routes.php, it's displayed at http://example.com/
     *
     * So any other public methods not prefixed with an underscore will
     * map to /index.php/welcome/<method_name>
     * @see http://codeigniter.com/user_guide/general/urls.html
     */
    public function index()
    {
        $this->load->view('welcome_message');
    }
}

متود پیش فرض کنترلر index هست و یک view با نام welcome_message را که در فایلی در مسیر زیر قرار دارد را صدا می زند:
C:\xampp\htdocs\ci3\application\views\welcome_message.php
این فایل را باز کرده و متن زیر را در آن paste کنید:
Markup
کد:
<h1>Welcome To My Site</h1>

حالا مجددا به آدرس زیر رفته:
http://localhost/ci3/
و تغییرات را مشاهده خواهید کرد.
 
گام دوم: ساخت یک متود جدید
می خواهیم در این قسمت یک متود جدید در کنترلر Welcome بسازم. اسم این کنترلر را hello می گذارم و کد زیر را در داخل کنتلر قرار می دهم:
PHP
کد:
public function hello($name)
{
    echo "hello world, $name";
}

حالا اگر به آدرس زیر مراجعه کنید با پیام "hello world" مواجه خواهید شد.
http://localhost/ci3/welcome/hello/meysam
آدرس بالا به ما نشان می دهد که کنترلری با نام welcome داریم و در این کنترلر متودی با نام hello و متود ما یک پارامتر قبول میکند با نام $name  که این پارامتر می تواند هر اسمی باشد.
در فریمورک کد ایگنایتر لزومی ندارد که حتما ما یک فایل view داشته باشیم و می توانیم مستقیما از کنترلر اطلاعات خروجی بگیریم واطلاعات را هر فرمت دلخواهی به سمت کاربر ارسال کنیم.
گام سوم: استفاده از یک view 
می خواهیم یک فایل view بسازیم و این بار در متود hello آن را فراخوانی کنیم. مجدد وارد کنترلر Welcome میشویم و این بار متود hello رو به صورت زیر تغییر میدهیم:
PHP
کد:
public function hello($name)
{
   $data['name'] = $name;
   $this->load->view('hello', $data);
}

برای فراخوانی یک view در کد ایگنایتر از متود view استفاده میشود. اولین پارامتر این متود نام فایل بدون پسوند php است. همانطور که در بالا می بینید اولین پارامتر ما یک view با نام hello است که می بایست آن را در مسیر زیر بسازید:
C:\xampp\htdocs\ci3\application\views\hello.php
پس از ساختن فایل بالا آن را با یک ویرایشگر متن باز کنید و کدهای زیر را در داخل آن قرار دهید:
Markup
کد:
<h1>Hello <?= $name; ?></h1>
<h2>Welcome To My Website</h2>

دومین پارامتر متود view که اختیاری و حاوی اطلاعاتی است که از جانب کنترلر به view ارسال می شود یا در اصطلاع پاس داده می شود.
اطلاعات ارسالی می بایست به صورت آرایه باشد و هر نامی که در آرایه وجود دارد در view به صورت متغیر در دسترس خواهد بود. به آدرس زیر رفته و تغییرات جدید را مشاهده کنید:
http://localhost/ci3/welcome/hello/amir
 
گام چهارم: ساخت یک کنترلر جدید
پس از ساخت متود جدید برای کنترلر welcome و ساخت view برای آن می خواهیم یک کنترلر جدید با نام Home بسازیم. یک فایل با نام Home.php در مسیر زیر ایجاد کنید:
C:\xampp\htdocs\ci3\application\controllers\Home.php
سپس کدهای زیر را در آن قرار دهید:
PHP
کد:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Home extends CI_Controller {

    public function index()
    {
        echo 'hello, this is home page!';
    }
}

دقت کنید که نام فایلها حتما به صورت Capital یعنی اولین حرف آن با حروف بزرگ شروع شود. اسم کلاس هم همچنین.
حالا برای نمایش به آدرس زیر بروید:
http://localhost/ci3/home
نکته 1: در صورتی که در آدرس فقط نام کنترلر را بنویسیم متود پیش فرض index اجرا خواهد شد.
نکته 2: شما می تونید view های خودتون رو در فولدرهای دیگری قرار بدید و اینطوری اون رو فراخوانی کنید:
PHP
کد:
$this->load->view('folder/viewname');

 
گام پنجم: تغییر کنترلر پیش فرض
شاید از خودتون بپرسید چطور میتونم کنترلر Home را جایگزین کنترلر پیش فرض کد ایگنایتر کنم؟ این کار ساده است کافیه به آدرس زیر بروید :
C:\xampp\htdocs\ci3\application\config
حالا فایل routes.php را به صورت زیر ویرایش کنید:
PHP
کد:
$route['default_controller'] = 'home';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

 
خلاصه این جلسه:
در این جلسه آموزش کار با  کنترلر ، view ، پاس دادن داده به view از طریق کنتلر و تغییر کنترلر پیش فرض را یاد گرفتیم. در جلسه بعد می خواهیم برنامه خودمون رو به دیتابیس متصل کنیم و داده هایی را از دیتابیس بخونیم.
لطفا قبل از ارسال هرگونه پست قوانین سایت را مطالعه کنید.
----
وب سایت میثم محمودی
پاسخ
#4
آموزش فریمورک Codeigniter - جلسه 3 اتصال به دیتابیس
 
در جلسه های قبل با کنترلر و ویو در کد ایگنایتر آشنا شدیم و اولین برنامه مون رو ساختیم. در این جلسه میخواهیم نحوه اتصال به دیتابیس رو آشنا بشیم و سپس با Active Record  این فریمورک کوئری های خودمون رو اجرا کنیم.
 
 
گام اول: ساخت جدول
 
برای کار با دیتابیس ابتدا نیاز به ساخت یک دیتابیس داریم. برای اینکار یک دیتابیس با نام ci3  در phpmyadmin  می سازیم. بعد تکه کد sql  زیر را برای ساخت یک جدول با چند رکورد نمونه را در بخش بخش SQL برنامه phpmyadmin وارد می کنیم:

کد:
CREATE TABLE `posts` (
 `id` int(10) UNSIGNED NOT NULL,
 `title` varchar(255) COLLATE utf8_persian_ci NOT NULL,
 `body` text COLLATE utf8_persian_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci;

--
-- Dumping data for table `posts`
--

INSERT INTO `posts` (`id`, `title`, `body`) VALUES
(1, 'first post!', 'first body'),
(2, 'second post', 'body'),
(3, 'third post', 'body'),
(4, 'fourth post', 'body');



گام دوم: پیکربندی اتصال به دیتابیس
برای اتصال فریمورک به دیتابیس باید زیر را ویرایش کنیم:
application/config/database.php
آن را با یک ویرایشگر متن مانند notepad++ باز کنید. در این فایل در متغیر $db['default'] چهار کلید اصلی وجود دارد که عبارتند از hostname که مقدار پیش فرض آن localhost است که پیشنهاد میکنم آن را تغییر ندهیم. کلید بعدی username است که نام کاربری پایگاه داده است که در ویندوز کافیه مقدار آن را root قرار دهید. کلید بعدی password است که پسورد نام کاربری پایگاه داده است که در ویندوز مقدار آن را خالی قرار دهید. کلید بعدی database که ما در اینجا نام آن را ci3  قرار میدهیم. نتیجه نهایی فایل به شکل زیر است:
کد php:
$db['default'] = array(
    
'dsn'    => '',
    
'hostname' => 'localhost',
    
'username' => 'root',
    
'password' => '',
    
'database' => 'ci3',
    
'dbdriver' => 'mysqli',
    
'dbprefix' => '',
    
'pconnect' => FALSE,
    
'db_debug' => TRUE,
    
'cache_on' => FALSE,
    
'cachedir' => '',
    
'char_set' => 'utf8',
    
'dbcollat' => 'utf8_general_ci',
    
'swap_pre' => '',
    
'encrypt' => FALSE,
    
'compress' => FALSE,
    
'stricton' => FALSE,
    
'failover' => array(),
    
'save_queries' => TRUE
); 


 
گام سوم: استفاده از Active Record
برای اینکه مطمئن بشیم اتصال به دیتابیس برقرار است با استفاده از Active Record درخواست نمایش همه رکوردهای جدول posts را می کنیم:
 
 
کد php:
        $this->load->database();
        
$rows $this->db->get('posts')->result_array();
        
// SELECT * FROM `posts` 
        
echo '<pre>';
        
print_r($rows);
        exit; 



اگر تنظیمات را در فایل databae.php صحیح انجام داده باشید با خروجی زیر مواجه خواهید شد:
 
کد:
Array
(
   [0] => Array
       (
           [id] => 1
           [title] => first post!
           [body] => first body
       )

   [1] => Array
       (
           [id] => 2
           [title] => second post
           [body] => body
       )

   [2] => Array
       (
           [id] => 3
           [title] => third post
           [body] => body
       )

   [3] => Array
       (
           [id] => 4
           [title] => fourth post
           [body] => body
       )

)


حالا کدهایی که نوشتیم را بررسی می کنیم:
در خط 1 ما کتابخانه database را فراخوانی می کنیم. بعد از فراخوانی این خط ما به کتابخانه از طریق متغیر $this->db در کنترلر و مدل ها دسترسی خواهیم داشت.
در خط دو از متود get استفاده میکنیم. این متود نام جدول را دریافت می کند و همه رکوردهای آن را برمی گرداند. سپس از متود result_array استفاده می کنیم این متود وظیفه دارد تمام رکوردها را به صورت آرایه به خروجی ارسال کند.
در خط سه معادل کد SQL  این دستور را نوشتیم.
در خط چهار پنج و شش خروجی را با تابع print_r به مرورگر می فرستیم و از برنامه با تابع exit خارج می شویم.
 
 
 گام چهارم: ساخت Model
در کد ایگنایتر می توان از مدل ها برای اتصال به دیتابیس و فراخوانی داده ها استفاده کرد هرچند که می توانید از Active record هم در کنترلرها استفاده کنید و بدون لایه مدل به دیتابیس وصل شوید و کوئری های خود را اجرا کنید اما بهتر است این کارها را در لایه مدل انجام دهید.

ابتدا به تعریف مدل می پردازیم. مدل یک کلاس PHP است که وظیفه اتصال به پایگاه داده برای یک یا چند جدول مرتبط را بر عهده دارد. برای هر جدول معمولا یک مدل ساخته می شود و کلیه کوئری های شما برای آن جدول در این مدل استفاده می شود .
استفاده از مدل باعث می شود خوانایی برنامه شما بسیار بالا رود و در همه جای برنامه از این مدل ها استفاده خواهد شد و موجب صرفه جویی در زمان نیز خواهد شد.

ما در اینجا برای جدول posts یک مدل به صورت زیر ایجاد کرده ایم:

کد php:
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class 
Posts_model extends CI_Model
{
 
   public function __construct()
 
   {
 
       parent::__construct(); 
 
 $this->load->database();  
}


 
   
    public 
function getLast()
 
   {
 
       return $this->db->get('posts');
 
   
 
  

// end class


 اسم فایل و کلاس به با حروف بزرگ به صورت Capital نوشته خواهد شد. هر کلاس با پسوند _model خواهد بود تا با سایر کلاس ها اشتباه نشود. 

برای فراخوانی مدل در کنترلر به این صورت عمل می شود:
کد php:
$this->load->model('posts_model'); 
بعد از فراخوانی برای دسترسی به متود یا اکشن های مدل به صورت زیر عمل می کنیم:
کد php:
$this->posts_model->getLast(); 

خلاصه این جلسه:
در این جلسه نحوه اتصال به دیتابیس و ثبت کوئری به برنامه مون رو فرا گرفتیم. در جلسه بعد می خواهیم نگاه عمیق تری به فریمورک Codeigniter 3 داشته باشیم تا برای برنامه های قدرتمند آن را آماده کنیم.
لطفا قبل از ارسال هرگونه پست قوانین سایت را مطالعه کنید.
----
وب سایت میثم محمودی
پاسخ


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان