Chuyển đến nội dung
Tài liệu

Hướng dẫn cho nhà phát triển

Các lớp lõi thường dùng

Tổng hợp chọn lọc các lớp và hàm lõi hay dùng khi phát triển bên thứ ba. Đây không phải đặc tả đầy đủ mà là tấm bản đồ "tìm cái gì ở đâu". Các lớp framework nằm trong namespace Zittme\Framework\ (Rhymix\Framework\ cũng tương thích).

Context: giữa yêu cầu và màn hình

$value = Context::get('key');          // 요청 변수·설정값 읽기
Context::set('items', $list);          // 템플릿으로 값 넘기기
Context::get('is_logged');             // 로그인 여부
Context::get('logged_info');           // 로그인 회원 정보
Context::setBrowserTitle('제목');
Context::addBodyClass('my-class');
Context::loadLang('modules/foo/lang');

Lưu ý: Context::set() ghi đè biến yêu cầu cùng tên. Với giá trị form của action proc, đọc trực tiếp $_POST sẽ an toàn hơn.

DB

$output = executeQuery('모듈.쿼리명', $args);       // 단건 성격
$output = executeQueryArray('모듈.쿼리명', $args);  // 결과 항상 배열
$srl = getNextSequence();                            // 고유 번호 발급

Kiểm tra thành công bằng $output->toBool(), khi thất bại chỉ cần trả về nguyên $output là thông báo lỗi được chuyển đi. Chi tiết xem Query XML.

Thông tin mô-đun

ModuleModel::getModuleInfoByMid($mid);     // mid의 인스턴스 정보
ModuleModel::isIDExists($mid);             // mid 중복 확인
ModuleModel::getModuleConfig('모듈명');     // 모듈 전역 설정
getController('module')->insertModuleConfig('모듈명', $config);  // 설정 저장
ModuleModel::loadSkinInfo($path, $skin);   // 스킨 메타데이터 (responsive 포함)

Thành viên

MemberModel::getMemberInfoByMemberSrl($member_srl);
MemberModel::getGroups();                  // 회원 그룹 목록
$logged_info = Context::get('logged_info');
$logged_info->is_admin === 'Y';            // 최고관리자 여부
$logged_info->group_list;                  // 소속 그룹 (키 = group_srl)

Bộ nhớ đệm: Zittme\Framework\Cache

use Zittme\Framework\Cache;

$data = Cache::get('mykey');
Cache::set('mykey', $data, 300);           // 300초
Cache::delete('mykey');
Cache::clearGroup('모듈명');                // 그룹 단위 비우기

Hãy lưu đệm các truy vấn nặng, nhưng đừng quên xóa bộ nhớ đệm liên quan trong các action thay đổi dữ liệu.

Tệp: Zittme\Framework\Storage

use Zittme\Framework\Storage;

Storage::exists($path);
Storage::createDirectory($path);
Storage::move($from, $to);
Storage::delete($path);
Storage::isDirectory($path);

Hằng số đường dẫn: RX_BASEDIR (thư mục gốc cài đặt), RX_BASEURL, RX_TIME (thời điểm yêu cầu). Theo quy ước, tệp được đặt trong thư mục riêng của từng mô-đun dưới files/.

Thư: Zittme\Framework\MailTemplate

Khung thư dùng chung của lõi. Nó đọc tên website, địa chỉ, màu nhấn từ cài đặt để tạo diện mạo nhất quán.

use Zittme\Framework\MailTemplate;

$body = MailTemplate::wrap('제목', $content_html);
$table = MailTemplate::infoTable(['항목' => '값']);
$button = MailTemplate::button('확인하기', $url);

Các hàm toàn cục hay dùng

HàmCông dụng
getUrl(...) / getNotEncodedUrl(...)Tạo URL (khác nhau ở việc có mã hóa hay không)
getNotEncodedFullUrl(...)URL đầy đủ gồm cả tên miền
lang('key')Chuỗi ngôn ngữ
escape($str)Thoát ký tự HTML
zdate($ymdhis, 'Y-m-d')Định dạng chuỗi YYYYMMDDHHIISS
getNextSequence()Số định danh duy nhất
toBool($val)Chuyển các cách ghi quen thuộc như Y/N sang boolean
isCrawler()Có phải bot tìm kiếm hay không

Thói quen kiểm tra tồn tại thực sự

Nếu cần API không có ở đây, hãy dùng sau khi xác nhận nó thực sự tồn tại trong mã nguồn lõi. Đoán một cái tên tương tự rồi gọi là nguyên nhân lớn gây lỗi bên thứ ba. Cách nhanh nhất là tìm mã làm cùng việc trong các mô-đun lõi (board·member·document) rồi làm theo.