nazir / iofiles
Class for handling file (read, write, upload, move, download, resize image, crop, add watermark, etc)
Requires
- php: >=5.3.2
Requires (Dev)
- phpunit/phpunit: 3.7.14
This package is not auto-updated.
Last update: 2025-04-13 04:53:23 UTC
README
Menghandle beberapa hal umum yang berhubungan dengan file seperti save, read, move, upload, force download, zip, extract, resize image, crop image, watermark, dsb. Tidak semua fungsi dalam Filesystem PHP ada dalam class ini.
Tabel Isi / Table of Contents
Instalasi / Installation
Unduh file dalam folder scr atau gunakan composer dengan perintah:
$ composer require nazir/iofiles
Penggunaan / Usage
- Inisialisasi Object Baru
use \IOFiles\IOFiles; $iofiles = new IOFiles; \\ jika tanpa use maka $iofiles = new \IOFiles\IOFiles;
setelah ini object menggunakan beberapa public method sebagai berikut:
- Operasi Pada File
a. Menggandakan file (copy)
$iofiles->copy($file, $destination);
b. Memindah file ke lokasi baru (move)
$iofiles->move($oldfile, $newfile);
c. Mengubah nama file (rename)
$iofiles->rename($oldfile, $newfile);
d. Menghapus file (delete)
$iofiles->delete($file);
e. Memaksa browser mendownload file (force download)
$iofiles->download($file);
Fungsi ini harus dipanggil sebelum ada output apapun karena dia akan mengeset beberapa header.
f. Gzip file
$iofiles->gz_file($file);
File hasil gzip akan diletakkan bersebelahan dengan file sumber dengan nama filesumber.gz
g. Lihat properti file (properties)
$iofiles->get_attrib($file, [$flags]);
$flag
bisa berisi string salah satu atribut berikut atau array berisi kumpulan atribut (jika semua semua atribut akan di-return):
'size'
- ukuran file (dalam bytes)'name'
- nama file'type'
- jenis file'path'
- lokasi path file'perms
- hak akses pada file'read'
- apakah file dapat dibaca (true/false), menggunakan PHP is_readable() lebih baik'write'
- apakah file dapat ditulis (true/false), menggunakan PHP is_writeable() lebih baik'accessed'
- kapan terakhir file diakses dengan format(Y-m-d H:i:s)
'modified'
- kapan terakhir file diubah dengan format(Y-m-d H:i:s)
Contoh penggunaan yang valid adalah:
$iofiles->get_attrib('index.php', 'size'); $iofiles->get_attrib('index.php', array('size', 'perms');
h. Lihat ekstensi file (extension)
$iofiles->get_type($file)
Mendapatkan ekstensi dari file di UPPERCASE. Contoh index.php
-> 'PHP'
i. Mencari file (find)
$iofiles->find($keyword, [$directory]);
$directory
adalah folder dimana file dicari, defaultnya adalah current_directory (.). Return array nama file jika ada file yang sesuai.
j. Mencari file (search)
$iofiles->search($keyword, [$directory]); // sama dengan $iofiles->find(..) :D
k. Membaca isi file (read)
$iofiles->read($file, [[[$returnType], [$length]], [$readType]]);
$returnType
: dengan nilai valid 1 (output berupa string), 2 (output berupa array dengan pemisah baris sebagai delimiter).$length
: bytes maksimal pembacaan file, defaultnya adalah sesuai ukuran file$readType
: mode baca dengan nilai 1 (mode text), 2 (mode biner)
l. Menulis data ke file (write)
$iofiles->write($file, [[$content], [$mode]]);
$mode
bisa diisi dengan nilai 'ab'
alias append (default), 'wb'
alias overwrite, dsb. Warning: tidak ada validasi jika mode yang dimasukkan invalid. Lihat dokumentasi di PHP untuk mode yang valid.
- Upload File
a. Konfigurasi (configuration)
$iofiles->upload_config($config);
Harus dipanggil sebelum proses upload dimulai. $config
berisi array dengan nilai valid sebagai berikut:
'max_size'
- ukuran maksimum file, juga dibatasi diphp.ini
'max_filename'
- ukuran maksimum nama file'allowed_types'
- ekstensi yang diperbolehkan, contoh:'jpg|jpeg|png'
'upload_path'
- lokasi untuk meletakkan file hasil upload'overwrite'
- (true/false)'encrypt_name'
- (true/false) apakah nama file baru diganti nama acak
Contoh penggunaan yang valid adalah:
$iofiles->upload_config( array( 'allowed_types' => 'docx|pdf', 'overwrite' => true, 'encrypt_name' => true ) ); $iofiles->upload('userfile');
b. Proses Upload (uploading)
$iofiles->upload([$field]);
$field
adalah nama yang dikirim untuk input file (defaultnya: 'userfile'
). Pastikan memanggil fungsi ini SETELAH $iofiles->upload_config()
.
c. Mendapatkan parameter upload (get params)
$iofiles->upload_get_param($paramName);
Beberapa informasi saat upload dapat dipanggil dengan menggunakan fungsi ini menggunakan nilai sebagai berikut:
'file_temp'
- nama file temp saat upload'file_size'
- ukuran file yang diupload'file_type'
- jenis file'orig_name'
- nama file asli'file_ext'
- ekstensi file'file_name'
- nama hasil upload (terutama jikaencrypt_name
bernilaitrue
d. Mendapatkan error saat upload (show error)
$iofiles->upload_show_error();
- Operasi ZIP
a. Mampatkan file dengan ZIP (zip compress)
$iofiles->zip_compress($file, [$zipName]);
$file
bisa berisi string (satu file) atau array (beberapa file). Hasil zip akan diletakkan bersebelahan dengan file sumber.
b. Ekstraksi ZIP (zip extraction)
$iofiles->zip_extract($zipfile, $destdir);
- Operasi Gambar / Image
a. Konfigurasi (configuration)
$iofiles->image_config($config);
Harus dipanggil sebelum proses operasi gambar dimulai. $config
berisi array dengan nilai valid sebagai berikut:
'source_image'
- gambar yang akan dioperasikan'new_image'
- nama file baru hasil operasi'width'
- lebar baru gambar (untuk resize)'height'
- tinggi baru gambar (untuk resize)'quality'
- kualitas gambar (0-100)'maintain_ratio'
- menjaga rasio gambar (true/false)'rotation_angle'
- sudut rotasi (*hanya untuk rotasi gambar)'wm_type'
- jenis watermark, ('text'
,'overlay'
)'wm_use_drop_shadow'
- watermark dengan drop shadow (true/false) default false'wm_use_truetype'
- watermark dengan font truetype (true/false) default false'wm_text'
- teks untuk dijadikan watermark'wm_overlay_path'
- path gambar untuk dijadikan watermark'wm_font_path'
- path font jika menggunakan truetype'wm_font_size'
- ukuran font watermark'wm_vrt_alignment'
- letak watermark secara vertikal, ('T'
untuk atas,'M'
untuk tengah, dan'B'
untuk bawah)'wm_hor_alignment'
- letak watermark secara horizontal, ('L'
untuk kiri,'C'
untuk tengah,'R'
untuk kanan)'wm_font_color'
- warna font watermark dengan kode hexa, contoh'#ffffff'
'wm_shadow_color'
- warna shadow watermark, dengan kode hexa'wm_shadow_distance'
- jarak shadow dengan teks asli'wm_opacity'
- opasitas watermark (untuk gambar) dengan nilai 1-100 Contoh penggunaan yang valid adalah:
$iofiles->image_config( array( 'source_image' => 'yourimage.png', 'maintain_ratio' => true, 'wm_type' => 'text', 'wm_text' => 'Copyright 2017' ) );
b. Memotong gambar (crop)
$iofiles->image_crop(); // pastikan image_config sudah dipanggil
c. Mengubah ukuran gambar (resize)
$iofiles->image_resize();
d. Memutar gambar (rotate)
$iofiles->image_rotate();
e. Lakukan watermark (image watermark)
$iofiles->image_watermark();
f. Efek berkaca (image mirror)
$iofiles->image_mirror();
g. Dapatkan error saat proses (show error)
$iofiles->image_show_error();
h. Bersihkan proses (clear)
$iofiles->image_clear();
Untuk memastikan bahwa semua bersih maka panggil fungsi ini ketika proses selesai atau ketika akan melakukan proses operasi gambar lagi.
Kredit? / Credits
Beberapa fungsi diadaptasi dari kode di CodeIgniter
License / Lisensi
MIT Free Software