• Tác giả
  • Bản quyền
  • FAQs
  • Liên hệ
Tech News, Magazine & Review WordPress Theme 2017
  • Home
  • WordPress
  • JavaScript
  • Mobile Development
  • PHP
  • Laravel
  • Phần Mềm
No Result
View All Result
  • Home
  • WordPress
  • JavaScript
  • Mobile Development
  • PHP
  • Laravel
  • Phần Mềm
No Result
View All Result
IZWEBZ – Blog học lập trình, thiết kế web cơ bản & chuyên sâu
No Result
View All Result
Home PHP

Mọi thứ bạn cần để khởi đầu với CodeIgniter

Demon Warlock by Demon Warlock
2 Tháng Ba, 2022
Mọi thứ bạn cần để khởi đầu với CodeIgniter
420
SHARES
1.5k
VIEWS
Share on FacebookShare on Twitter

CodeIgniter là một framework ứng dụng web cho PHP. Nó cho phép các nhà phát triển xây dựng các ứng dụng web nhanh hơn và cung cấp nhiều thư viện mã nguồn và các helper nhằm tăng tốc các tác vụ tẻ nhạt trong PHP. CodeIgniter hoạt động trên một thiết kế mô-đun; nghĩa là bạn có thể triển khai các thư viện cụ thể theo ý của bạn – điều này tăng tốc cho framework. Bài hướng dẫn này sẽ cố gắng chỉ cho bạn những điều cơ bản khi thiết lập framework, bao gồm cách xây dựng một ứng dụng hello world cơ bản thông qua tiếp cận MVC.


Tại sao cần một framework?

Why a Framework

Các framework cho phép cấu trúc việc phát triển các ứng dụng bằng cách đề xuất các class và function có thể sử dụng lại để có thể giảm đáng kể thời gian phát triển. Một số nhược điểm của các framework là chúng cung cấp các class không mong muốn, làm phình to code khiến ứng dụng khó điều hướng hơn.


Tại sao dùng CodeIgniter?

CodeIgniter Basics

CodeIgniter là một framework rất gọn, hữu hiệu. Khi nó hoàn hảo cho người mới bắt đầu (bởi vì
quá trình học biết ít), Codeigniter cũng hoàn hảo cho các ứng dụng web lớn và có yêu cầu khắt khe. CodeIgniter được phát triển bởi EllisLab và có tài liệu
thấu đáo, dễ hiểu. Dưới đây là danh sách lý do khiến CodeIgniter trở thành một framework thông minh dễ sử dụng?

  • Dung lượng nhỏ với hiệu năng xuất sắc
  • Phương pháp MVC trong phát triển (mặc dù nó đổi lấy sự linh hoạt bằng tính lỏng lẻo)
  • Tạo URL gọn thân thiện với công cụ tìm kiếm
  • Dễ dàng mở rộng
  • Chạy trên cả PHP 4 (4.3.2+) và 5
  • Hỗ trợ cho hầu hết các database lớn bao gồm MySQL (4.1+), MySQLi, MS SQL, Postgres, Oracle, SQLite,
    và ODBC.
  • Bảo mật ứng dụng được xem là trọng tâm
  • Thao tác triển khai bộ nhớ đệm dễ dàng
  • Nhiều thư viện và helper để giúp bạn thực hiện các tác vụ phức tạp cho email, hình ảnh,
    xác thực form, upload file, quản lý session, các ứng dụng đa ngôn ngữ và tạo apis cho ứng dụng
  • Đa số các thư viện chỉ được tải khi cần thiết để cắt giảm tài nguyên cần thiết

Tại sao dùng MVC?

MVC

Với người mới bắt đầu, MVC là viết tắt của Model, View, Controller. Nó là một model lập trình được sử dụng cho việc phát triển
ứng dụng web. Pattern này tách biệt giao diện người dùng và phần back-end (ví dụ như tương tác database với nhau. Một triển khai
thành công cho phép các nhà phát triển sửa đổi giao diện người dùng hoặc back-end của họ mà không ảnh hưởng đến
phần khac. MVC giúp tăng tính linh hoạt của một ứng dụng bằng cách có thể sử dụng lại các mode hoặc view
lần nữa). Dưới đây là mô tả về MVC.

  • Model: xử lý tương tác data thô (raw data) và database và sẽ có các function.
    như thêm bản ghi vào database hoặc chọn bản ghi database cụ thể. Trong CI thì model là
    thành phần là không cần thiết và có thể được bao gồm trong controller.
  • View: liên quan đến phần hiển thị các data và điều khiển giao diện cho người dùng.
    Trong CI, view có thể là một website, rss feed, data ajax hoặc bất kỳ “trang” nào khác.
  • Controller: hoạt động trung gian giữa view và model và, như tên gọi,
    nó kiểm soát những thứ được gửi đến view từ model. Trong CI, controller cũng là nơi để tải các thư viện và helper.

Một ví dụ về phương pháp MVC sẽ dành cho form liên hệ.

  1. Người dùng tương tác với view bằng cách nhập vào form và gửi đi.
  2. Controller nhận data POST từ form, controller gửi data này đến model
    để cập nhật trong database.
  3. Sau đó model gửi kết quả của database đến controller.
  4. Kết quả này được cập nhật trong view và hiển thị cho người dùng.

Có vẻ như rất nhiều việc cần làm. Nhưng tin tôi đi; khi bạn đang làm việc với một ứng dụng lớn, việc có thể sử dụng lại các model hoặc view giúp tiết kiệm rất nhiều thời gian.


Bước 1: Tải về CodeIgniter

Để bắt đầu, bạn sẽ cần download CodeIgniter và upload nó lên máy chủ của mình. Điều hướng trình duyệt của bạn
đến //www.codeigniter.com/ và
nhấp vào nút download. Trong hướng dẫn này, chúng tôi đang sử dụng phiên bản 1.70.


Bước 2: Cài đặt và khám phá CodeIgniter

Khi bạn đã download CodeIgniter, tất cả những gì bạn cần làm là giải nén và đổi tên thư mục “CodeIgniter_1.7.0” thành
tên ứng dụng hoặc, trong trường hợp này là “ci” và upload lên máy chủ có hỗ trợ PHP và MySQL của bạn.
Bây giờ trên máy chủ của bạn, tôi sẽ giải thích tất cả các thư mục và file dành cho:

  • Thư mục system chứa tất cả các file giúp CI vận hành.
    • Thư mục application gần giống với nội dung của thư mục system
      thư mục này là để người dùng có thể chứa các file dành riêng cho ứng dụng đó, ví dụ nếu một
      người dùng chỉ muốn tải một helper trong một ứng dụng, anh ta sẽ đặt nó vào thư mục system/application/helpers
      thay vì thư mục system/helpers.

      • Thư mục config lưu trữ tất cả các file cấu hình có liên quan đến ứng dụng. Thư mục này
        bao gồm thông tin về những thư viện mà ứng dụng nên tự động tải và thông tin về database.
      • Thư mục controllers lưu trữ tất cả các controller cho ứng dụng.
      • Thư mục errors lưu trữ tất cả các trang mẫu về lỗi cho ứng dụng. Khi
        một lỗi xảy ra thì trang lỗi được tạo từ một trong các mẫu này.
      • Thư mục helpers lưu trữ tất cả các hỗ trợ dành riêng cho ứng dụng của bạn.
      • Thư mục hook dành cho hook giúp sửa đổi chức năng của các file core của CI,
        hooks chỉ nên được sử dụng bởi người dùng CI có kinh nghiệm
      • Thư mục language lưu trữ các dòng văn bản có thể được tải thông qua thư viện ngôn ngữ
        để tạo các website đa ngôn ngữ.
      • Thư mục libraries lưu trữ tất cả các thư viện dành riêng cho ứng dụng của bạn.
      • Thư mục models lưu trữ tất cả các model cho ứng dụng.
      • Thư mục views lưu trữ tất cả các view cho ứng dụng.
    • Thư mục cache lưu trữ tất cả các cache do thư viện caching tạo ra.
    • Thư mục codeigniter lưu trữ tất cả các phần giúp cho CI hoạt động.
    • Thư mục database lưu trữ tất cả các database driver và class cho phép bạn
      kết nối với database.
    • Thư mục fonts lưu trữ tất cả các font có thể được sử dụng bởi thư viện thao tác hình ảnh.
    • Thư mục helpers lưu trữ tất cả các core helper của CI nhưng bạn có thể thiết lập các helper của riêng mình
      ở đây, chúng có thể được truy xuất bởi tất cả các ứng dụng của bạn.
    • Thư mục language lưu trữ tất cả các file ngôn ngữ gốc của CI cho librarie và helper
      sử dụng. Bạn cũng có thể thiết lập các thư mục language của riêng mình mà tất cả các ứng dụng của bạn có thể truy xuất.
    • Thư mục libaries lưu trữ tất cả các thư mục core của CI nhưng bạn có thể thiết lập libraries của riêng mình
      ở đây, chúng có thể được truy xuất bởi tất cả các ứng dụng của bạn
    • Thư mục logs lưu trữ tất cả các log được CI tạo ra.
    • Thư mục plugin lưu trữ tất cả các plugin mà bạn có thể sử dụng. Các plugin gần như giống hệt
      với các helper, plugin là các hàm được cộng đồng chia sẻ.
    • Thư mục scaffolding lưu trữ tất cả các file làm cho class scaffolding hoạt động.
      Scaffolding cung cấp giao diện CRUD thuận tiện để truy xuất thông tin trong database của bạn
      suốt quá trình phát triển.
  • user_guide chứa hướng dẫn sử dụng cho CI.
  • File index.php là bit thực hiện tất cả các chức năng kỳ diệu của CI và cho phép bạn thay đổi
    tên của các thư mục system và application.

Bước 3: Cấu hình CodeIgniter

Khởi động CI khá đơn giản. Hầu hết bạn chỉ cần chỉnh sửa vài cấu hình
các file.

Bạn cần thiết lập CI để trỏ đến base URL đúng của ứng dụng. Để làm điều này, hãy mở system/application/config/config.php và
chỉnh sửa mảng base_url để trỏ đến server và thư mục CI của bạn.

$config['base_url'] = "http://localhost/ci/";

Bước 4: Kiểm tra CodeIgniter

Chúng tôi sẽ làm một test nhanh để xem CI có hoạt động hay không. Truy cập http://localhost/ci/ và bạn
sẽ thấy điều sau đây


Bước 5: Cấu hình CodeIgniter Cont.

Nếu bạn sẵn sàng, chúng ta nên hoàn tất phần cấu hình. Chúng tôi đang bắt đầu định cấu hình cụ thể cho ứng dụng hellowworld của chúng tôi. Nếu bạn muốn sử dụng database với ứng dụng của mình, (trong hướng dẫn này, chúng tôi sẽ làm.) mở lên system/application/config/database.php và xét giá trị phù hợp cho mảng items. Code này kết nối với MySQL
database được gọi là “hellowworld” trên localhost với username là “root” và password là “root”.

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "root";
$db['default']['database'] = "helloworld";
$db['default']['dbdriver'] = "mysql";

Ngoài ra, vì chúng tôi sẽ sử dụng database khá nhiều, chúng tôi muốn nó tự động tải để chúng tôi không
phải cụ thể tải mỗi khi chúng tôi kết nối. Mở file system/application/config/autoload.php
và thêm ‘database’ vào mảng autoload libaries.

$autoload['libraries'] = array('database');

Hiện tại, thiết lập CI sẽ có controller mặc định gọi là “welcome.php”; bạn có thể tìm thấy controller này trong thư mục system/application/controllers. Trong hướng dẫn này, hãy xóa nó và mở file system/application/config/route.php của bạn. Thay đổi mục array mặc định để trỏ đến controller “helloworld”.

 $route['default_controller'] = "Helloworld"

CI cũng có một file xem mà chúng tôi không cần. Mở thư mục system/application/view
và xóa file welcome_message.php.


Bước 6: Tạo database Hellowworld

Vì đây không thực sự là một hướng dẫn về MySQL, tôi sẽ duy trì mọi thứ đơn giản. Tạo một database gọi là “hellowworld” và
chạy câu SQL thông qua phpMyAdmin (hoặc máy khách MySQL tương tự).

CREATE TABLE `data` (
  `id` int(11) NOT NULL auto_increment,
  `` varchar(255) NOT NULL,
  `text` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

INSERT INTO `data` (`id`, ``, `text`) VALUES(1, 'Hello World!', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla 
sapien eros, lacinia eu, consectetur vel, dignissim et, massa. Praesent suscipit nunc vitae neque. Duis a ipsum. Nunc a erat. Praesent 
nec libero. Phasellus lobortis, velit sed pharetra imperdiet, justo ipsum facilisis arcu, in eleifend elit nulla sit amet tellus. 
Pellentesque molestie dui lacinia nulla. Sed vitae arcu at nisl sodales ultricies. Etiam mi ligula, consequat eget, elementum sed, 
vulputate in, augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;');

Bước 7: Tạo model Hellowworld

Model là tùy chọn trong CI, nhưng đó là thực hành tốt nhất để sử dụng chúng. Chúng chỉ là các class PHP có chứa
các hàm làm việc với thông tin từ database. Tiếp tục
tạo một file helloworld_model.php
trong thư mục system/application/models
Trong file này, tạo một class Helloworld_model, Helloworld_model cấu trúc và một hàm có tên getData.

Trong hàm getData, chúng ta
sẽ sử dụng các hàm của database Active Record để tăng tốc thời gian phát triển database khi làm việc
với CI và database. Về cơ bản, chúng là các hàm đơn giản hóa để tạo các câu truy vấn.

<?php
class Helloworld_model extends Model {

    function Helloworld_model()
    {
        // Call the Model constructor
        parent::Model();
    }
    
    function getData()
  	{
			//Query the data table for every record and row
			$query = $this->db->get('data');
			
			if ($query->num_rows() > 0)
			{
				//show_error('Database is empty!');
			}else{
				return $query->result();
			}
		}

}
?>

Bước 8: Tạo controller Hellowworld

Hãy tạo controller sẽ hiển thị view và tải model. Theo cách đó, khi
bạn truy xuất địa chỉ http://localhost/ci/index.php/helloworld/, bạn sẽ thấy data từ database.
Trong hệ thống system/application/controllers, hãy tạo một file có tên helloworld.php.
Trong file mới này, chúng tôi sẽ tạo một class có cùng tên với file.

Trong class này, bạn cần tạo một hàm gọi là “index”. Đây là hàm sẽ được
hiển thị khi không có hàm nào khác được cung cấp – ví dụ: khi http://localhost/ci/index.php/helloworld/ được
duyệt Ví dụ: nếu chúng ta đã tạo một hàm gọi là foo, chúng ta có thể tìm thấy hàm này ở http://localhost/ci/index.php/helloworld/foo/.

Điều quan trọng cần nhớ là CI cấu trúc các URL của nó ra sao; ví dụ: http://host/codeignitordirectory/index.php/ class/function.

Trong hàm index của controller, chúng ta cần tải model, truy vấn database và truyền dữ liệu
đã truy vấn này đến view. Để tải bất kỳ tài nguyên nào vào CI, ví dụ: libraries,
helpers, views hoặc models, chúng tôi sử dụng class load. Sau khi chúng tôi đã tải model, chúng tôi có thể truy xuất nó thông qua
tên model của nó và một hàm cụ thể. Để truyền data cho một view, chúng ta cần gán nó vào một mảng
mục và truyền vào array – nó sẽ tái tạo các thành phần của array thành một biến trong file view.

<?php
	class Helloworld extends Controller{
		function index()
		{
			$this->load->model('helloworld_model');

			$data['result'] = $this->helloworld_model-><span class="sql">getData</span>();
			$data['page_'] = "CI Hello World App!";

			$this->load->view('helloworld_view',$data);
	    }
	}
?>

Nếu chúng tôi đã truy xuất http://localhost/ci/index.php/helloworld/ ngay bây giờ, nó sẽ không hoạt động; Điều này là do file view không tồn tại.


Bước 9: Tạo view cho Hellowworld

File view là điều mà người dùng nhìn thấy và tương tác, nó có thể là một phân đoạn của một trang hoặc là toàn bộ trang. Bạn có thể chuyển array của các biến cho view thông qua đối số thứ hai
của hàm load của model. Để tạo view cho bài hướng dẫn của chúng tôi, hãy tạo một file mới có tên helloworld_view.php trong thư mục system/application/view. Tiếp theo, chúng ta chỉ cần tạo html thông thường của chúng tôi
và các phần tử của body, và sau đó là header và paragraph thông tin từ database. Để hiển thị tất cả
các bản ghi nhận được từ database, chúng tôi đưa nó vào trong vòng lặp “foreach”
mà vòng lặp thông qua tất cả các thành phần.

<html>
	<head>
		<><?=$page_?></>
	</head>
	<body>
		<?php foreach($result as $row):?>
		<h3><?=$row->?></h3>
		<p><?=$row->text?></p>
		<br />
		<?php endforeach;?>
	</body>
</html>

Bạn có thể nhận thấy rằng chúng tôi đang sử dụng cú pháp php thay thế , điều này mang lại sự thuận tiện và tiết kiệm thời gian
để viết các biểu thức echo.


Bước 10: một số Extras

Khi bạn truy xuất “http://localhost/ci/index.php/helloworld/”, bạn
sẽ thấy một điều tương tự như thế này

Nhưng chúng tôi vẫn chưa hoàn thành. Có một vài điều bạn có thể làm để cải thiện trải nghiệm CodeIgniter của mình –
như loại bỏ index.php phiền toái khỏi URL. Bạn có thể hoàn thành tác vụ này bằng cách tạo file .htaccess trong thư mục root và bổ sung code sau đây:

RewriteEngine on
RewriteCond $1 !^(index.php|images|robots.txt)
RewriteRule ^(.*)$ ci/index.php/$1 [L]
        

Bạn cũng cần mở file config.php trong system/application/config/ và chỉnh sửa aray index_page thành một string trống.

$config['index_page'] = "";

Một lời khuyên tiện lợi khác là bật khả năng phân tích cú pháp thay thế PHP của CI nếu
máy chủ kích hoạt. Để thực hiện việc này, hãy mở file như trước đó, system/application/config/config.php và đặt mục mảng rewrite_short_tags thành TRUE.

$config['rewrite_short_tags'] = TRUE;

Tôi hy vọng mọi việc suôn sẻ! Hãy hy vọng được xem nhiều hướng dẫn về CodeIgniter của tôi sắp tới.

  • Hãy đăng ký NETTUTS RSS Feed để nhận các bài viết và hướng dẫn về web mỗi ngày.

Demon Warlock

Demon Warlock

Tôi được sinh ra ở Việt Nam, nhưng hiện tại đang sống và làm việc tại Mỹ. Ngành tôi học không có liên quan gì đến thiết kế web. Nhưng đây là sở thích từ ngày còn là sinh viên du học, do vậy bây giờ dù cho đang đi làm nhưng tôi vẫn thích dùng thời gian rảnh rỗi của mình để học về thiết kế web. Như các bạn, tôi cũng việc mày mò tự học và khám phá.

Related Posts

Xây dựng một PHP5 framework
PHP

Xây dựng một PHP5 framework

2 Tháng Ba, 2022
10 nguyên tắc của các bậc thầy PHP
PHP

10 nguyên tắc của các bậc thầy PHP

2 Tháng Ba, 2022
Sử dụng thông báo thanh toán tức thì của PayPal với PHP
PHP

Sử dụng thông báo thanh toán tức thì của PayPal với PHP

2 Tháng Ba, 2022
Thay đổi Kích thước Hình ảnh Dễ dàng bằng PHP
PHP

Thay đổi Kích thước Hình ảnh Dễ dàng bằng PHP

2 Tháng Ba, 2022
Next Post
Sử dụng Kotlin trong các dự án Android của bạn

Sử dụng Kotlin trong các dự án Android của bạn

Trả lời Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Recommended.

Kiểm tra trong Laravel

Kiểm tra trong Laravel

1 Tháng Ba, 2022
Xây dựng Startup của bạn: Yêu cầu thay đổi việc lập kế hoạch

Xây dựng Startup của bạn: Yêu cầu thay đổi việc lập kế hoạch

1 Tháng Ba, 2022

Trending.

Tải Phần Mềm Adobe Premiere Pro CC 2020 – Hướng Dẫn Cài Đặt Chi Tiết

Tải Phần Mềm Adobe Premiere Pro CC 2020 – Hướng Dẫn Cài Đặt Chi Tiết

28 Tháng Sáu, 2022
Tải Phần Mềm Adobe Photoshop CC 2019 – Link Full Hướng Dẫn Cài Đặt Chi Tiết

Tải Phần Mềm Adobe Photoshop CC 2019 – Link Full Hướng Dẫn Cài Đặt Chi Tiết

2 Tháng Bảy, 2022
IZWEBZ – Blog học lập trình, thiết kế web cơ bản & chuyên sâu

Izwebz được lập trình và thiết kế từ đầu bởi Izwebz Team. Tôi cũng rất tự hào vì được cung cấp bởi WordPress, một CMS được viết rất tốt và đẹp mắt.

Follow Us

Fanpage

Izwebz - Thiết Kế Website Theo Chuẩn

Viết bài cho izwebz

Trang web vẫn đang trong quá trình phát triển về nội dung. Do vậy nếu bạn có khả năng hãy đóng góp bài viết hoặc bạn có thể quảng cáo trang web đến những người mà bạn biết. Được vậy tôi sẽ rất biết ơn bạn.

Recent News

Tải Phần Mềm Adobe Photoshop CC 2019 – Link Full Hướng Dẫn Cài Đặt Chi Tiết

Tải Phần Mềm Adobe Photoshop CC 2019 – Link Full Hướng Dẫn Cài Đặt Chi Tiết

2 Tháng Bảy, 2022
Tải Phần Mềm Adobe Premiere Pro CC 2020 – Hướng Dẫn Cài Đặt Chi Tiết

Tải Phần Mềm Adobe Premiere Pro CC 2020 – Hướng Dẫn Cài Đặt Chi Tiết

28 Tháng Sáu, 2022
  • Tác giả
  • Bản quyền
  • FAQs
  • Liên hệ

© 2022 JNews - Premium WordPress news & magazine theme by Jegtheme.

No Result
View All Result
  • Home
  • Review
  • Apple
  • Applications
  • Computers
  • Gaming
  • Gear
    • Audio
    • Camera
    • Smartphone
  • Microsoft
  • Photography
  • Security

© 2022 JNews - Premium WordPress news & magazine theme by Jegtheme.