1. Code
  2. PHP

HMVC: pengenalan dan aplikasi

Scroll to top

Indonesian (Bahasa Indonesia) translation by Dika Budiaji (you can also view the original English article)

Tutorial ini adalah pengantar hirarkis Model View Controller(HMVC) pattern, dan bagaimana hal itu berlaku untuk pengembangan aplikasi web. Untuk tutorial ini, saya akan menggunakan contoh-contoh yang diberikan dari CodeIgniter dari seri awal dan menunjukkan bagaimana HMVC dapat modifikasi valuable untuk proses pengembangan Anda. Pengenalan ini mengasumsikan Anda memiliki pemahaman pattern Model View Controller (MVC). Kami sarankan Anda membaca Pengantar untuk MVC untuk berkenalan dengan topik sebelum menangani tutorial ini.

Apa itu HMVC?

HMVC adalah evolusi patten MVC digunakan oleh aplikasi web sebagian besar. Itu muncul sebagai jawaban untuk masalah-masalah salability yang jelas dalam aplikasi yang digunakan MVC. Solusi yang disajikan dalam situs web JavaWorld, Juli 2000, mengusulkan bahwa standar Model, View dan Controller triad menjadi berlapis ke "hierarchy of parent-child MCV layers". Gambar di bawah menggambarkan bagaimana ini bekerja:

Setiap triad fungsi secara independent dari satu sama lain. Sebuah triad dapat meminta akses ke lain triad melalui controller mereka. Kedua hal tersebut memungkinkan aplikasi yang akan tersebar di beberapa lokasi, jika diperlukan. Selain itu, lapisan MVC Triad memungkinkan untuk lebih mendalam dan pengembangan aplikasi yang kuat. Hal ini menyebabkan beberapa keuntungan yang membawa kita ke titik berikutnya.

Mengapa saya harus menggunakan HMVC?

Kunci keuntungan untuk menerapkan pola HMVC dalam siklus development Anda:

  • Modularisasi: Pengurangan dependensi antara bagian-bagian yang berbeda dari aplikasi.
  • Organisasi: Memiliki folder untuk masing-masing membuat Triad relevan menjadi load lebih ringan.
  • Usabilitas: Secara default desain sangat mudah untuk menggunakan kembali hampir setiap potongan kode.
  • Extensibilitas: Membuat aplikasi lebih extensible tanpa mengorbankan kemudahan maintenance.

Keuntungan ini akan memungkinkan Anda untuk mendapatkan M.O.R.E dari aplikasi Anda dengan lebih sedikit sakit kepala.

Menyiapkan HMVC dalam CodeIgniter

Untuk menambah extra kedalaman CodeIgniter dari seri awal, kita akan melihat contoh-contoh hari ini dalam CodeIgniter. Aku akan membawa kita menuju langkah-langkah yang diperlukan untuk mendapatkan CodeIgniter bekerja dengan HMVC. Setelah kami selesai dengan itu, saya akan memberikan beberapa contoh. Mari kita mulai!

Kata pengantar

Untuk menjalankan aplikasi web, Anda memerlukan web server pada komputer Anda jika Anda tidak bekerja secara remote. Berikut adalah rekomendasi dengan link ke petunjuk instalasi:

Langkah 1. Download dan Install CodeIgniter

Pergi ke codeigniter.com dan klik link "Download CodeIgniter". Jika Anda tahu bagaimana cara menginstalnya dan ingin untuk melewati langkah ini klik di sini

Ekstrak isi dari file zip ke root web server dokumen anda.

Ubah nama folder "CodeIgniter_1.7.2" ke "hmvcExample".

Pindahkan folder "hmvcExample/system/application" ke "hmvcExample/application". Ini adalah praktek yang umum dengan CodeIgniter. Tujuan dari melakukan ini adalah untuk memisahkan aplikasi core dari framework. Kita sekarang punya sebuah direktori yang terlihat seperti gambar di bawah ini:

Buka "hmvcExample/application/config/config.php" di editor yang anda pilih.

edit situs base url untuk mencocokkan lokasi instalasi Anda. Dalam kasus saya saya akan mengubahnya

1
$config['base_url'] = "http://example.com/";

ke

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

Simpan perubahan dan tutp "hmvcExample/application/config/config.php"

Tes bahwa kita memiliki versi Codeigniter yang bekerja. Buka browser Anda dan memeriksa Anda "http://yourhost/hmvcExample/".
Anda harus disambut dengan layar "Welcome to Codeigniter" di bawah ini:

Hanya itu! Anda telah berhasil download dan diinstal CodeIgniter. Sekarang kita akan melanjutkan untuk membuatnya bekerja dengan ekstensi HMVC.

Langkah 2. Download dan Install Extension HMVC

Download versi 5.2 ekstensi modular dari CodeIgniter Wiki.

Dalam isi dari zip file adalah tiga file php:

Pindahkan file ketiga file ini ke "hmvcExample/application/libraries/" folder.

Cek lagi browser anda. Anda masih harus melihat Welcome to CodeIgniter layar.

Saatnya untuk menambahkan modul. Buat struktur direktori berikut "application/modules/welcome/controllers/".

Pindakan "application/controllers/welcome.php" ke "application/modules/welcome/controllers/welcome.php".

Cek ulang browser anda. Anda masih harus melihat Welcome to CodeIgniter layar.

Buat folder "application/modules/wecome/views/"

Pindahkan "application/views/welcome_message.php" ke "application/modules/welcome/views/welcome_message.php".

Lakukan pemeriksaan terakhir pada browser Anda. Anda masih harus melihat Welcome to CodeIgniter layar.

Hanya itu! Modular ekstensi diinstal dengan benar.

Contoh modul login

Sekarang bahwa kita memiliki contoh CodeIgniter HMVC diaktifkan, saya akan menunjukkan beberapa contoh singkat. Contoh pertama saya akan menunjukkan bagaimana Anda dapat menerapkan pembatasan akses user ke halaman atau seluruh modul.

Download dan unzip CodeIgniter dari awal hari 6 source file ke server web Anda. Anda harus berakhir dengan sebuah folder bernama "ci_day6/" bersama "hmvcExample/"

Buat modul "login" di direktori "hmvcExample/application" kami. Itu harus akhirnya tampak seperti ini

1
  hmvcExample/application/modules/login/controllers/
2
	hmvcExample/application/modules/login/models/
3
	hmvcExample/application/modules/login/views/

Buat modul "site" di direktori "hmvcExample/application" kami. Itu harus akhirnya tampak seperti ini

1
	hmvcExample/application/modules/site/controllers/
2
	hmvcExample/application/modules/site/models/
3
	hmvcExample/application/modules/site/views/

TIP: Ketika bekerja dengan modul-modul yang aku terus folder bernama RENAME dengan tiga folder kosong controllers, models, dan views. Ini menghemat saya sedikit waktu Kapan saja saya ingin menciptakan sebuah model baru.

Sekarang kita salin file modul login dari "ci_day6/" ke "hmvcExample/".

1
	ci_day6/application/controllers/login.php
2
	ci_day6/application/models/membership_model.php
3
	ci_day6/application/views/login_form.php
4
	ci_day6/application/views/signup_form.php
5
	ci_day6/application/views/signup_successful.php

Copy/Pindahkan semua file di atas lebih dari sebagai berikut

1
	hmvcExample/application/modules/login/controllers/login.php
2
	hmvcExample/application/modules/login/models/membership_model.php
3
	hmvcExample/application/modules/login/views/login_form.php
4
	hmvcExample/application/modules/login/views/signup_form.php
5
	hmvcExample/application/modules/login/views/signup_successful.php

Selanjutnya kami menyalin file modul site dari "ci_day6/" ke "hmvcExample/".

1
	ci_day6/application/controllers/site.php
2
	ci_day6/application/views/logged_in_area.php

Salin/Pindahkan semua file di atas lebih dari sebagai berikut

1
	hmvcExample/application/modules/site/controllers/site.php
2
	hmvcExample/application/modules/site/views/logged_in_area.php

File yang terakhir Salin adalah global view dan file CSS dan gambar. Asterisk (*) menunjukkan folder dan semua isinya termasuk sub folder

1
ci_day6/css/*
2
ci_day6/img/* 
3
ci_day6/application/views/includes/*

Menyalin setiap folder di atas dan semua konten mereka seperti yang tercantum di bawah ini

1
hmvcExample/css/*
2
hmvcExample/img/*
3
hmvcExample/application/views/includes/*

Buka "hmvcExample/application/config/autoload.php" dan menyuntingnya agar terlihat seperti ini:

1
$autoload['libraries'] = array('database', 'session');	// Need to Autoload DB and Session

2
3
4
/*

5
| -------------------------------------------------------------------

6
|  Auto-load Helper Files

7
| -------------------------------------------------------------------

8
| Prototype:

9
|

10
|	$autoload['helper'] = array('url', 'file');	

11
*/
12
13
$autoload['helper'] = array('url', 'form');		// Need to autoload url and form.

Jika Anda tidak sudah melakukan begitu dari langkah satu, buka "hmvcExample/application/config/config.php" dan mengedit sehingga dasar url diatur ke lokasi Anda sesuai.

1
$config['base_url'] = "http://localhost/hmvcExample/";	// web address. WARNING keep trailing /

Buka "hmvcExample/application/config/database.php" dan menambahkan link yang sesuai ke database Anda.

1
$db['default']['hostname'] = "localhost";		// location of DB server

2
$db['default']['username'] = "YOUR USERNAME HERE";	// username you use to connect

3
$db['default']['password'] = "YOUR PASSWORD HERE";	// associated password

4
$db['default']['database'] = "ci_series";		// The database you want to use

Buka browser Anda untuk menguji bahwa halaman login ditampilkan "http://localhost/hmvcExample/index.php/login"

Sekarang untuk membuat fungsi login ini, kita perlu membuat tabel database membership. Untuk ini, kita perlu membuat tabel di PHPMyAdmin Anda.

Memilih atau membuat database "ci_series" Anda.

Di sQL tab, paste kode di bawah ini ke dalam textarea dan klik go

1
CREATE TABLE  `ci_series`.`membership` (
2
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
3
`first_name` VARCHAR( 32 ) NOT NULL ,
4
`last_name` VARCHAR( 32 ) NOT NULL ,
5
`email_address` VARCHAR( 64 ) NOT NULL ,
6
`username` VARCHAR( 32 ) NOT NULL ,
7
`password` VARCHAR( 32 ) NOT NULL
8
) ENGINE = MYISAM ;

Dengan membership tabel dibuat, kita klik pada link Create account pada halaman login dan menambahkan user ke database.

Login sebagai user dan mengkonfirmasi bahwa Anda sekarang berada di "site/members_area" situs. Seharusnya terlihat mirip dengan gambar di bawah ini:

Klik link "logoff" dan mencoba untuk secara manual kembali ke area member. Anda akan melihat bahwa Anda tidak memiliki izin untuk melakukannya.

Jadi kita memiliki kami Triad dikelompokkan, tetapi kita masih tidak cukup dalam HMVC mode belum. Dalam controller situs kita menemukan fungsi yang disebut is_logged_in().

1
	function is_logged_in()
2
	{
3
		$is_logged_in = $this->session->userdata('is_logged_in');
4
		if(!isset($is_logged_in) || $is_logged_in != true)
5
		{
6
			echo 'You don\'t have permission to access this page. <a href="../login">Login</a>';	
7
			die();		
8
		}		
9
	}

Ini login berhubungan fungsi. Dalam mode MVC, hal ini diperlukan karena situs tidak dapat mengakses login. Dengan HMVC kita dapat memperbaiki ini.

Potong fungsi is_logged_in() dari "applications/modules/site/controllers/site.php"

Simpan site.php tanpa fungsi is_logged_in().

Buka "applications/modules/login/controllers/login.php".

Menyisipkan fungsi is_logged_in() ke dalam class.

Simpan login.php

Buka "applications/modules/site/controllers/site.php".

1
	function __construct()
2
	{
3
		parent::Controller();
4
        $this->is_logged_in();
5
	}

Dalam fungsi __Construct(), kita membuat panggilan HMVC untuk login is_logged_in() fungsi, seperti yang terlihat di bawah ini:

1
	function __construct()
2
	{
3
		parent::Controller();
4
        // Format: modules::run('module/controller/action', $param1, $param2, .., $paramN);

5
        modules::run('login/is_logged_in');
6
	}

MVC 101 lengkap

Di sana Anda memilikinya! Kami telah berhasil mengubah kode enam hari ke dalam format HMVC. Modul situs sekarang permintaan cek login daripada harus menggunakan sendiri. Sementara lahiriah kita amati ada perbedaan, desain situs yang pada dasarnya telah berubah. Semua fungsi login yang sekarang dimana mereka milik: dalam login triad. Ini mungkin tampak seperti banyak pekerjaan dengan upah kecil tapi itu tidak jadi. Perubahan login dapat dilakukan sekali. Struktur internal triad dapat diedit tanpa harus mengubah seluruh aplikasi dalam respon. Replikasi kode untuk controller lain ini tidak lagi diperlukan. Terakhir tetapi tidak paling, semua kode yang terkait berada di satu lokasi berguna. Langkah kecil ini mungkin tidak WOW Anda tapi ketika kita menggali lebih dalam aplikasi yang lebih besar, kompleks, M.O.R.E. jelas ini akan menjadi cara efektif HMVC pattern ini.

Bagian Member contoh

Kita sekarang akan mengungkap lebih tentang kekuatan HMVC's. Kami hanya menunjukkan bagaimana memanggil modul dari controller. Ada tempat-tempat lain Anda dapat melakukannya juga. HMVC dibangun dengan User Interface (UI) dalam pikiran. Kita bisa memanggil modul dari view kami sebagai hasilnya. Ini adalah dimana power HMVC dapat benar-benar bersinar.

Ketika memanggil HMVC dari view Anda akan menggunakan modules::run(). Ada hanya satu persyaratan ketika melakukan hal ini. Hasil yang dihasilkan dari panggilan harus menjadu snipper html dan bukan tampilan yang lengkap. Ini adalah karena kita sudah dalam view saat kita memanggil fungsi run. Kita akan melihat ini dalam aksi ke bawah halaman seperti kita mengedit situs modul views.

Langkah 1. Mengedit Login Controller

Kita akan membuat sebuah blok yang muncul di bagian atas setiap halaman dengan nama, link penting, dan logout pilihan. Widget seperti ini adalah lumrah di situs hari ini. Gambar di bawah menggambarkan hasil akhir.

Buka "applications/modules/login/controllers/login.php".

1
    function cp()
2
    {
3
        if( $this->session->userdata('username') )
4
        {
5
            // load the model for this controller

6
            $this->load->model('membership_model');
7
            // Get User Details from Database

8
            $user = $this->membership_model->get_member_details();
9
            if( !$user )
10
            {
11
                // No user found

12
                return false;
13
            }
14
            else
15
            {
16
                // display our widget

17
                $this->load->view('user_widget', $user);
18
            }			
19
        }
20
        else
21
        {
22
            // There is no session so we return nothing

23
            return false;
24
        }
25
    }

Paste/Tulis kode di atas ke login controller.

cp() menerima informasi dari fungsi membership_model, get_member_details(), yang kita buat di langkah berikutnya. Jika user menemukan kami akan menampilkan snippet view yang rinci dalam langkah tiga. Dari sana, kita harus mendapatkan blok diinginkan digambarkan di atas.

Simpan perubahan yang Anda buat ke login.php

Langkah 2. Mengedit Model Membership

Anda akan melihat bahwa kita memanggil get_member_details() dari membership_model. Fungsi ini mendapat informasi user dari database dan akan bisa diakses dari beberapa sumber yang berbeda. Kita akan bekerja pada yang sekarang.

Buka "applications/modules/login/models/membership_model.php".

1
	function get_member_details($id=false)
2
	{
3
		if( !$id )
4
		{
5
			// Set Active Record where to the current session's username

6
			if( $this->session->userdata('username') )
7
			{
8
				$this->db->where('username', $this->session->userdata('username'));
9
			}
10
			else
11
			{
12
				// Return a non logged in person from accessing member profile dashboard

13
				return false;
14
			}
15
		}
16
		else
17
		{
18
			// get the user by id

19
			$this->db->where('id', $id);
20
		}
21
		// Find all records that match this query

22
		$query = $this->db->get('membership');
23
		// In this case because we don't have a check set for unique username 

24
		// we will return the last user created with selected username.

25
		if($query->num_rows() > 0)
26
		{
27
			// Get the last row if there are more than one

28
			$row = $query->last_row();
29
			// Assign the row to our return array

30
			$data['id'] = $row->id;
31
			$data['first_name'] = $row->first_name;
32
			$data['last_name'] = $row->last_name;
33
			// Return the user found

34
			return $data;
35
		}
36
		else 
37
		{
38
			// No results found

39
			return false;
40
		}

Komentar kode Anda! Ini adalah praktik terbaik dan akan membantu orang lain memahami apa yang Anda tulis.

Baris 01: Fungsi panggilan memiliki default variabel $id. Hal ini memungkinkan kita pilihan untuk menemukan pengguna oleh ID bukan oleh username. Hal ini membuat opsional dengan mengeset menjadi false dalam deklarasi.

Sisanya fungsi lurus ke depan dan juga berkomentar. Kami query tabel membershup untuk user melalui username atau ID. Hasilnya disimpan ke $data array dan dikembalikan. Semua hasil lain mengembalikan nilai false.

Simpan perubahan yang Anda buat untuk membership_model.php

Langkah 3. Membuat User Widget View

Bagian ketiga dan terakhir widget yang kita buat adalah potongan xhtml, yang kita dapat dimasukkan ke dalam view lain. Ini disebut oleh fungsi cp() login controller yang kami baru tulis.

Buka "applications/modules/login/views/user_widget.php".

1
<code style="font-family: Monaco, Verdana, Sans-serif; 

2
                 font-size: 12px; 

3
                 background-color: #f9f9f9; 

4
                 border: 1px solid #D0D0D0; 

5
                 color: #002166; 

6
                 display: block; 

7
                 margin: 14px 0 14px 0; 

8
                 padding: 12px 10px 12px 10px;">
9
	<?php echo $first_name.' '.$last_name; ?> &middot; 
10
	<?php echo anchor('site/members_area', 'Dashboard'); ?> | 
11
	<?php echo anchor('site/profile/'.$id, 'Profile'); ?> | 
12
    <?php echo anchor('site/messages/'.$id, 'Messages'); ?> | 
13
	<?php echo anchor('login/logout', 'Logout'); ?>
14
</code>

Catatan: Hal ini tidak praktek yang baik untuk menggunakan gaya inline. Aku memilih untuk menempatkan satu contoh gaya inline untuk tetap pada topik.

Blok kode bergaya ini mengambil informasi yang di kirim dari fungsi cp(). Kami generate link yang menggunakan fungsi anchor() CI URL helper. Informasi lebih lanjut tentang panduan pengguna dapat ditemukan di codeigniter.com.

Setelah bekerja pada ketiga file tersebut, kita akan menguji halaman "login/cp". Kita harus melihat sesuatu seperti gambar dibawah. Catatan: Anda harus log int untuk melihatnya. Pastikan untuk melakukannya sebelum memeriksa halaman atau Anda tidak akan melihat apa-apa.

Langkah 4. Mengedit Site Controller

Link dalam snippet untuk profil dan pesan akan mengembalikan kesalahan untuk saat ini. Hal ini ok karena kami belum membuat fungsi-fungsi belum. Mari kita melakukan itu sekarang.

Buka "applications/modules/site/controllers/site.php".

1
<?php
2
class Site extends Controller 
3
{
4
	function __construct()
5
	{
6
		parent::Controller();
7
	}
8
9
	function members_area()
10
	{
11
		modules::run('login/is_logged_in');
12
		$this->load->view('logged_in_area');
13
	}

__construct()
Untuk contoh ini, kami akan menghapus...

1
modules::run('login/is_logged_in');

.. .from fungsi sehingga kita dapat membuat bagian-bagian tertentu private dan memiliki lain bagian public.

members_area()
Kami ingin hanya user yang login untuk akses area member dashboard. Jadi kita akan menggunakan fungsi HMVC modul: Jalankan dan memanggil is_logged_in cek dari login controller. Kami kemudian load file tampilan logged_in_area yang akan diedit lebih bawah halaman.

1
	function messages()
2
	{
3
		modules::run('login/is_logged_in');
4
		$this->load->model('login/membership_model');
5
		$user = $this->membership_model->get_member_details($this->uri->segment(3));
6
		if( !$user )
7
		{
8
			// No user found

9
			return false;
10
		}
11
		else
12
		{
13
			// display our widget

14
			$this->load->view('member_messages', $user);
15
		}				
16
	}

messages()
Seperti members_area(), kami hanya ingin user yang login sehingga kami telah menyertakan cek is_logged_in. Kita telah menulis kode pada bagaimana untuk mendapatkan user detail dari database sehingga kami akan memuat login model, membership_model. Ini akan memungkinkan kami untuk mendapatkan informasi user melalui fungsi get_member_details(). Ketiga URI segmen yang dikirm ke dalam fungsi yang id untuk user yang ingin kita mendapatkan pesan. Misalnya, jika url adalah:

1
http://localhost/hmvcExample/index.php/site/messages/43

Kemudian get_member_details() fungsi kami akan menerima "43" sebagai sebuah variabel input. Tergantung pada hasil dari get_member_details(), kita baik diperlihatkan view: member_messages atau kita tidak mendapatkan apa-apa (sebagai hasil dari query gagal).

1
	function profile()
2
	{
3
		$this->load->model('login/membership_model');
4
		$user = $this->membership_model->get_member_details($this->uri->segment(3));
5
		if( !$user )
6
		{
7
			// No user found

8
			$data['main_content'] = 'member_profile';
9
			$data['notice'] = 'you need to view a profile id';
10
			$this->load->view('includes/template', $data);
11
		}
12
		else
13
		{
14
			// display our widget

15
			$user['main_content'] = 'member_profile';
16
			$this->load->view('includes/template', $user);
17
		}		
18
	}
19
}

profile()
Seperti jaringan sosial; Kami ingin Halaman profil menjadi public. Jadi kita tidak memasukan cek is_logged_in. Sama seperti pesan, kita memanggil membership_model login triad dan query database untuk user yang diinginkan. Dalam kasus ini, jika tidak ada user yang ditemukan, kita berhenti sedikit lebih anggun. Kami juga memberitahu visitor bahwa id perlu ditentukan. Dengan hasil yang sukses, kita melihat profil member.

Langkah 5 Edit login di Area View

Buka "applications/modules/site/views/logged_in_area.php".

1
<!DOCTYPE html>
2
<html lang="en">
3
<head>
4
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
5
	<title>untitled</title>
6
</head>
7
<body>
8
	<?php echo modules::run('login/cp');?>
9
	<h2>Welcome Back, <?php echo $this->session->userdata('username'); ?>!</h2>
10
     <p>This section represents the area that only logged in members can access.</p>
11
</body>
12
</html>

Timpa isi file dengan kode di atas.

Baris 08: HMVC dimasukkan ke dalam action di sini. Pandangan kita memanggil fungsi "login/cp", dan echo snippet html yang persis dimana kita mengatakan itu. Perhatikan bagaimana kita tidak harus mempersiapkan apa-apa kita? Itu semua ditangani secara internal oleh login untuk kita. Praktis bukan?

Simpan perubahan yang Anda buat untuk logged_in_area.php. Halaman selesai Anda harus menampilkan seperti:

Langkah 6. Membuat tampilan Pesan Member

Membuat view baru: "applications/modules/site/views/member_messages.php".

1
<!DOCTYPE html>
2
<html lang="en">
3
<head>
4
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
5
	<title>untitled</title>
6
</head>
7
<body>
8
	<?php echo modules::run('login/cp');?>
9
	<h2><?php echo $first_name; ?>'s Messages</h2>
10
     <p>This could be where the messaging system gets displayed</p>
11
</body>
12
</html>

Menulis atau sisipkan kode di atas ke dalam file yang baru dibuat.

View ini cukup banyak hanya tiruan dari area member untuk menguji login yang memegang pada beberapa halaman. Ada satu perbedaan: kami Memancing beberapa informasi dari modul login membership_model. Hal ini terbukti sebagai $first_name variabel.

Point of mendapatkan informasi user berikut akan menyampaikannya dari modul yang akan mengembalikan snippet dengan pesan user.

Simpan perubahan yang Anda buat untuk member_messages.php. Halaman selesai Anda harus menampilkan seperti:

Langkah 7. Membuat tampilan Member Profile

Membuat view baru: "applications/modules/site/views/member_profile.php".

1
	<?php echo modules::run('login/cp');?>
2
    <?php if( isset($notice) ): ?>
3
    <h2>Member Profile Pages</h2>
4
    <p><?php echo $notice; ?></p>
5
    <?php else: ?>
6
	<h2><?php echo $first_name; ?>'s Profile</h2>
7
     <p>Put all the good wholesome profile info here!</p>
8
	<?php endif; ?>

Tulis atau paste kode di atas ke dalam file yang baru dibuat.

Kami memiliki if statement yang mendeteksi apakah user ditemukan atau tidak. Jika tidak, kita dibawa ke halaman kesalahan menyatakan kita memerlukan ID untuk melihat profil.

Sekali lagi, kita mengambil informasi user. Seperti pesan kita akan menggunakan ini untuk mengambil daftar teman user, blog entry terbarunya, dan kegiatan pakan, dll.

Simpan perubahan yang Anda buat ke member_profile.php. Halaman selesai Anda harus menampilkan seperti:

Apa yang terjadi ketika kita Logoff?

Karena kita ingin Halaman profil menjadi public, itu masih harus menampilkan. Minus widget user tentu saja.

Ketika login, dan kami pergi ke profil tanpa ketiga uri segmen kita melihat profil kita sendiri. Logded off, kita akan menunjukkan kesalahan di bawah ini.

Kita tidak harus dapat melihat pesan atau dashboard. Ketika memeriksa pesan halaman kita akan disambut dengan ini:

Kami selesai

Itu saja! Kami menambakan lebih mendalam ke contoh awal kita dan menunjukkan cara yang berbeda untuk menggunakan HMVC.

  • Memanggil modules::run() dari controller.
  • Echo modulues::run() dari view untuk menampilkan snippet HTML.
  • Load model dari modul lain.

Saya berharap ini telah menjadi sebuah pengalaman yang mencerahkan. HMVC adalah pattern yang luar biasa yang membuat aplikasi lebih kuat. Sangat layak investasi. Mencobanya. Aku berjanji Anda tidak pernah ingin untuk kembali ke vanila MVC!