Thông báo
VinaBB đang trong trạng thái vọc phá liên tục, mọi trang đều có thể xuất hiện lỗi

Nếu bạn không thể gửi bài trong diễn đàn hỗ trợ, hãy gửi tin nhắn cho chúng tôi qua Facebook: https://facebook.com/vinabb
Khai báo
nedka
Quản trị viên19/09/2016 16:00
Khai báo đối tượng filesystem trong phương thức khởi tạo __construct() cũng như trong tập tin config/services.yml.
protected $filesystem;
public function __construct(\phpbb\filesystem\filesystem $filesystem)
{
$this->filesystem= $filesystem;
}
arguments:
- '@filesystem'
$this->filesystem= $phpbb_container->get('filesystem');
CHMOD và kiểm tra
nedka
Quản trị viên19/09/2016 16:01
Đổi nhóm sở hữu
Áp dụng một thư mục hoặc tập tin:
$this->filesystem->chgrp('đường_dẫn', 'tên_nhóm')
$list = array('đường_dẫn_1', 'đường_dẫn_2');
$this->filesystem->chgrp($list, 'tên_nhóm')
$this->filesystem->chgrp(\Traversable $files, 'tên_nhóm')
$this->filesystem->chgrp('đường_dẫn_thư_mục', 'tên_nhóm:tên_người_dùng', true)
Đổi người sở hữu
Áp dụng một thư mục hoặc tập tin:
$this->filesystem->chown('đường_dẫn', 'tên_nhóm:tên_người_dùng')
$list = array('đường_dẫn_1', 'đường_dẫn_2');
$this->filesystem->chown($list, 'tên_nhóm:tên_người_dùng')
$this->filesystem->chown(\Traversable $files, 'tên_nhóm:tên_người_dùng')
$this->filesystem->chown('đường_dẫn_thư_mục', 'tên_nhóm:tên_người_dùng', true)
Đối cấp phép
Quy ước cấp phép chung:
Áp dụng một thư mục hoặc tập tin:Thư mục / Tập tin cho phép ghi: 0777
Các thư mục còn lại: 0755
Các tập tin còn lại: 0644
$this->filesystem->chmod('đường_dẫn', 0777)
$list = array('đường_dẫn_1', 'đường_dẫn_2');
$this->filesystem->chmod($list, 0777)
$this->filesystem->chmod(\Traversable $files, 0777)
$this->filesystem->chmod('đường_dẫn_thư_mục', 0777, true)
Kiểm tra tồn tại
$this->filesystem->exists('đường_dẫn')
Kiểm tra được phép đọc
$this->filesystem->is_readable('đường_dẫn')
Kiểm tra được phép ghi
$this->filesystem->is_writable('đường_dẫn')
Thao tác thư mục
nedka
Quản trị viên19/09/2016 16:01
Tạo mới
$this->filesystem->mkdir('đường_dẫn', 0777)
$this->filesystem->mkdir('đường_dẫn', 0755)
Sao chép
Sao chép thực sự trên Windows hoặc tạo symlink trên Mac/Linux. Symlink là một bản sao ánh xạ, khi vào đường dẫn thư mục B được dẫn về thư mục A gốc, thư mục B vẫn xem như tồn tại, tương tự shortcut trên Windows.
$this->filesystem->mirror('đường_dẫn_gốc', 'đường_dẫn_mới')
Đổi tên
$this->filesystem->rename('tên_cũ', 'tên_mới')
$this->filesystem->rename('tên_cũ', 'tên_mới', true)
Xóa
Áp dụng một thư mục:
$this->filesystem->remove('đường_dẫn')
$list = array('đường_dẫn_1', 'đường_dẫn_2');
$this->filesystem->remove($list)
$this->filesystem->remove(\Traversable $directories)
Thao tác tập tin
nedka
Quản trị viên19/09/2016 16:02
Tạo mới
$this->filesystem->dump_file('đường_dẫn', 'nội_dung')
Sao chép
$this->filesystem->copy('đường_dẫn_gốc', 'đường_dẫn_mới')
$this->filesystem->copy('đường_dẫn_gốc', 'đường_dẫn_mới', true)
Đổi tên
$this->filesystem->rename('tên_cũ', 'tên_mới')
$this->filesystem->rename('tên_cũ', 'tên_mới', true)
Xóa
Áp dụng một tập tin:
$this->filesystem->remove('đường_dẫn')
$list = array('đường_dẫn_1', 'đường_dẫn_2');
$this->filesystem->remove($list)
$this->filesystem->remove(\Traversable $files)
Thay đổi thời gian chỉnh sửa và truy cập lần cuối
Áp dụng một tập tin:
$this->filesystem->touch('đường_dẫn')
$list = array('đường_dẫn_1', 'đường_dẫn_2');
$this->filesystem->touch($list)
$this->filesystem->touch(\Traversable $files)
$this->filesystem->touch('đường_dẫn', 'giá_trị_thời_gian_chỉnh_sửa', 'giá_trị_thời_gian_truy_cập')
Xử lý các dữ liệu tải về
nedka
Quản trị viên19/09/2016 16:03
JSON
$json = json_decode($content, true);
Ví dụ từ tập tin composer.json của gói mở rộng ta đang viết:
{
"extra": {
"display-name": "Styles Demo",
...
}
}
$json['extra']['display-name']
$json->extra->{'display-name'}
XML
$xml = simplexml_load_string($content);
Ví dụ ta có tập tin XML sau:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<page-title>...</page-title>
<url>...</url>
<posts>
<post id="1">
<title>...</title>
<content>...</content>
</post>
<post id="2">
<title>...</title>
<content>...</content>
</post>
</posts>
</root>
$page_title = $xml->{'page-title'};
$url = $xml->url;
foreach ($xml->posts->post as $post)
{
$id = $post['id'];
$title = $post->title;
$content= $post->content;
}
YAML
use Symfony\Component\Yaml\Yaml;
$yml = Yaml::parse($content);
Ví dụ từ tập tin config/services.yml của gói mở rộng ta đang viết:
services:
vinabb.demo.listener:
class: vinabb\demo\event\listener
$yml['services']['vinabb.demo.listener']['class']
VinaBB • The Holy Land of phpBB
Quan điểm
Không đề cập chính trị, tôn giáo, nội dung đồi trụy.
Giữ gìn sự trong sáng của Tiếng Việt.
Không chia sẻ phần mềm vi phạm bản quyền.
Không rao vặt và không nhận đặt quảng cáo.
Dù trong túi hết tiền thì diễn đàn phpBB của anh cũng phải ngay ngắn.
Chuyện tình phpBB
17/07/2004: Yêu phpBB từ phiên bản 2.0.10.
22/10/2006: Cất tiếng cười chào đời.
11/06/2007: Chính thức định cư trên Olympus, Sao Hỏa.
11/06/2009: Mất liên lạc với Trái Đất. [ Phiên bản 2007 ]
28/07/2016: Trôi dạt đến mặt trăng Rhea, Sao Thổ.
12/12/2016: Cuộc hành trình mới lại bắt đầu…


NEDKA Solutions
Đơn vị chủ quản