Hướng dẫn dùng asserion trong PHP

NukeViet 5 sử dụng phần quản lý ngôn ngữ mới, khác với NukeViet 3 và 4. Lớp

{$LANG->get['admin_logout_title']}
6 được sử dụng để quản lý ngôn ngữ.

Giao diện Smarty

Nếu trong function chưa gọi global cần gọi global $nv_Lang

Trong php cần assign:

$tpl->assign['LANG', $nv_Lang];

Trong file tpl:

{$LANG->get['admin_logout_title']}

Nếu trong keylang có truyền tham số [%s, %d …] thì dùng

{$LANG->get['admin_logout_title', $para1, $para2 ...]}

Phương thức get sẽ tìm keylang theo thứ tự lang global, lang module, lang block. Nếu keylang không có sẽ xuất luôn keylang ra.

Nếu tìm riêng ở lang nhỏ hơn dùng

{$LANG->getModule['admin_logout_title']}
{$LANG->getGlobal['admin_logout_title']}
{$LANG->getBlock['admin_logout_title']}

Giao diện sử dụng Xtemplate

Xuất lang ra trong php

$tpl->assign['GLANG', \NukeViet\Core\Language::$lang_global];
$tpl->assign['MLANG', \NukeViet\Core\Language::$lang_module];
$tpl->assign['BLANG', \NukeViet\Core\Language::$lang_block];

Trong file tpl dùng như cũ

{$LANG->get['admin_logout_title']}
7

Không cần gọi global biến $nv_Lang nếu dùng Xtemplate

Khởi tạo lang

$nv_Lang = new \NukeViet\Core\Language[];

Đọc ngôn ngữ global

$nv_Lang->loadGlobal[$admin = false];

Nếu $admin = false thì đọc ở global.php nếu $admin = true đọc admin_global.php

Đọc ngôn ngữ module

$nv_Lang->loadModule[$module_file, $admin = false, $modadmin = false];

Nếu $modadmin = true đọc ở includes/language/admin_xxx.php

Nếu $modadmin = false đọc ở modules/xxx/language/yyy.php tùy theo $admin mà đọc admin_vi.php hay vi.php

Đọc ngôn ngữ giao diện

$nv_Lang->loadTheme[$global_config['module_theme'], $admin = false];

Nếu $admin = false đọc themes/xxx/language/vi.php ngược lại đọc admin_vi.php

Đọc ngôn ngữ install

$nv_Lang->loadInstall[$lang];

Đọc file ngôn ngữ bất kỳ

{$LANG->get['admin_logout_title']}
0

Ngôn ngữ tạm

Ví dụ khi giao diện quét các file admin.menu.php để lấy ra menu của admin thì cần phải load các ngôn ngữ của module vào. Khi đó dùng:

{$LANG->get['admin_logout_title']}
1

Giá trị

{$LANG->get['admin_logout_title']}
8 đưa vào là true, khi đọc thì hệ thống không làm ảnh hưởng đến các giá trị:

{$LANG->get['admin_logout_title']}
2

Sau khi dùng xong

{$LANG->get['admin_logout_title']}
9 để giải phóng bộ nhớ

Đọc ngôn ngữ khác, không phải là NV_LANG_INTERFACE hiện tại

Để đọc ngôn ngữ khác cần chú ý đến hai phương thức:

{$LANG->get['admin_logout_title']}
3

Nếu dùng setLang hệ thống sẽ làm rỗng toàn bộ lang hiện tại bao gồm ngôn ngữ tạm và cả phần

{$LANG->get['admin_logout_title']}
2

Nếu dùng

{$LANG->get['admin_logout_title', $para1, $para2 ...]}
0 hệ thống chỉ làm rỗng ngôn ngữ tạm đã đọc để chuyển sang ngôn ngữ được change để đọc ⇒ Phần này dùng để thay đổi ngôn ngữ tạm cần đọc.

Khi dùng

{$LANG->get['admin_logout_title', $para1, $para2 ...]}
1 mà không truyền vào biến
{$LANG->get['admin_logout_title', $para1, $para2 ...]}
2 thì hệ thống sẽ giữ nguyên lang hiện tại, chỉ làm rỗng dữ liệu đã đọc.

Như các bạn đã thấy thì ở các bài trước mình thường viết code logic vào trong call back function của route. Lý do mình viết code vào trong đó là cho mọi người dễ hình dung logic vì nó được đặt trong 1 file luôn. Nhưng trên thực tế ứng dụng của mọi người sẽ có rất nhiều route, lúc này nếu như code logic mà đặt trong route luôn thì file này sẽ rất lớn và code lúc này sẽ trở nên rối hơn.

Trong Laravel, Controller sẽ là nơi chứa các logic code thay thế cho route. Lúc này bạn có thể gom nhóm một loạt các logic có chung một nghiệp vụ vào một class cho dễ quản lý.

VD: Controller

Chủ Đề