Showing posts with label XAMPP. Show all posts
Showing posts with label XAMPP. Show all posts

Sunday, August 28, 2016

PHP Artisan UP & Down in Laravel 5.3



Untuk UP :


Saturday, August 27, 2016

Playing with PHP Artisan Migration Commands in Laravel 5.3 - Generating Migrations

We are ready to play with real php artisan migrate command now... because in previous part we have setup our laravel environment. Mmmm..... Here is the available command for migration in laravel 5.3 :
Documentation about migration can be seen here..
First.... Let's try migrate:install...
php artisan migrate:install
migrate:install will gonna make our migration table in our database. So after executing this, we will see a new table named migration as shown below :
What is the purpose of this migration table ? Well... This table will contain all of our migration file. So when we create a new migration file, this table will automatically update it's content when we execute php artisan migrate. We will gonna an example about this later.. :v
Next, Let's generate a new migration table. Type php artisan make:migration "your_migration_table_name", For example :
php artisan make:migration hisoka_first_migration
hisoka_first_migration is the name of our migration file...
After executing that command, we will see a new migration file inside of our database-migration folder like this :
As we can from above code, the migration file is not having a table name inside of method up(). So we will need to create it manually using laravel Schema. But there is also a way to create table automatically, from laravel documentation we can use flag like --table and --create. So let's see how these two flags work....
php artisan make:migration migration_1 --table=hisoka_table_1
Yaaps... there is our table name. So if we put --table flag, it will automatically generate our table name. Next let's see --create flag.
php artisan make:migration migration_2 --create=hisoka_table_1
From the code above, we can see that --create flag will also automatically create some column {id and timestamps} instead just creating our table name. 

Btw we still another flag that we can use, namely --path. This flag is used to specify the location of our migration file. In order to use this flag, let's create a new folder first in our laravel directory like this :
Then, run this command :
php artisan make:migration migration_3 --path=hisoka_migration_file


And the result is.....

Yaaaps... I think that's all for generating migrations in laravel 5.3.. See yaa in the next part... :)

Monday, August 8, 2016

Test Enkripsi & Dekripsi PHP - Date juga.. :D

class hisoka date kyk gini :
<?php

class hisokaDate
{
    public static function udate($format = 'u', $utimestamp = null) {
        if (is_null($utimestamp))
            $utimestamp = microtime(true);

        $timestamp = floor($utimestamp);
        $milliseconds = round(($utimestamp - $timestamp) * 1000000);

        return date(preg_replace('`(?<!\\\\)u`', $milliseconds, $format), $timestamp);
    }

}

?>

Engkeripsina kek gini :
<?php
require_once('hisokadate.php');// '/hisokaDate';


$date = new DateTime(date('Y-M-H-s'));
$hisokadet = hisokaDate::udate('Y-m-d H:i:s.u T');
echo 'DateTime::format :'.$date->format('Y-m-d H:i:s:u').'<br/>';
echo 'date : '.date('s').'<br/>';
echo 'mydate : '.$hisokadet.'<br/>';
echo '========================================================<br/>';
echo 'Maenan Engkripts Broo.. :D'.' : <br/>';
echo 'SHA-512 : '.crypt($hisokadet,$hisokadet).'<br/>';
echo 'password_hash : '.password_hash($hisokadet,PASSWORD_BCRYPT,['cost'=>12]).'<br/>';
//echo 'bcrypt : '.bcrypt($hisokadet);

$key = 'SuperSecretKeyhu';
$encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $hisokadet, MCRYPT_MODE_ECB);
$plaintext = mcrypt_decrypt(MCRYPT_BLOWFISH, $key, $encrypted, MCRYPT_MODE_ECB);
echo 'mycrypt_encrypt : '.$encrypted.'<br/>';
echo 'mycrypt_decrypt : '.$plaintext.'<br/>';

//================================================================
//Open SSL
//Encryption:
$textToEncrypt = "My Text to Encrypt";
$encryptionMethod = "AES-256-CBC";
$secretHash = "encryptionhash";
$iv = mcrypt_create_iv(16, MCRYPT_RAND);
$encryptedText = openssl_encrypt($hisokadet,$encryptionMethod,$secretHash, 0, $iv);

//Decryption:
$decryptedText = openssl_decrypt($encryptedText, $encryptionMethod, $secretHash, 0, $iv);
echo 'Open SSL Encrypt : '.$encryptedText.'<br/>';
echo 'Open SSL Decrypt : '.$decryptedText.'<br/>';

//=================================================================
?>

Hasil :


Sunday, August 7, 2016

Maen Middleware di Laravel

Di post sebelumnya kita udah buat sistem authentikasi sederhana. Nah disini kita akan bermain dengan middleware. Sooo.... mmm... mari kita buat satu biji route yang belum pake middleware :
Terus klu kita akses ...
Naah... kliatan klu path path testmiddleware itu bisa diakses user yng blum login juga. So...biar route testmiddleware ini cm bisa diakses oleh user yang login ajjah, kita taraoin middleware jadi kyk gini :
Terus klu kita akses lagi {pastiin logout dl yaak...:v} hasilnya :
Kliatan klu kita akses testmiddleware tar kita dirouteback ke login page... jadi kita harus login dl... :)
Daan... itu middleware auth yang dibuat dipostingan sebelumnya...  Neext... mari kita buat  admin middleware. Jdi yg bisa akses route/path tertentu cuma user yang levelnya adalah admin. Pertama-tama kita tambain kolom baru ditabelnya kyk gini :

So gambar diatas default nilai intnya adalah 0 {bukan admin, klu admin 1 eheh..:D} terus ..sebelumnya kita udah punya satu biji user yaitu Hisoka, dan posisinya bukan admin.
Terus...mari kita buat middleware baru, balik ke cmd, terus jalanin command ini :
php artisan make:middleware hisokaAdminMiddleware
File hisokaAdminMiddlewarenya defaultnya kyak gini :
Naaah... silahkan ubah hisokaAdminMiddleware ini jadi kek gini :
Naaah...fungsi handle itu yg ngecek apa kita guest, logged user, atau udah admin... Daan.... disitu dicek klu bukan guest (udah login) terus adminnya nilainya selain 0, maka kita akan lanjut terus, tapi klu g', g' ngapa2in atau balik ke home directory {redirect('/')}...Teruuuus... kita tambain konfig baru dikernel laravel kyk gini :
Di kernel ini berarti tar kita panggil hisokaAdmidMiddlewarenya pke 'isAdminHisoka' seperti terlihat pada kode diatas....Terakhir kita tambain route baru seperti inih...
Naah... kliatan di-line 34, kita pake middleware('isAdminHisoka')...Dan isAdminHisoka ini nantinya dihandle di hisokaAdminMiddleware... So klu kita akses 'testHisokaAdminMiddleware' hasilnya seperti terlihat di bawah :
Okiee...cukup sekian untuk part ini... :)

Source codenya bisa dipull dari github Hisoka di sini... atau dari bitbucket di sini...

Next middleware controller...

Saturday, August 6, 2016

Iseng Maen Authentication di Laravel :D

Buat project baru laravel di htdocs, trs masuk ke directory laravel yang kita buat dan ketik perintah ini " php artisan make:auth" buat bikin auth baru :
Terus klu kita run laravellnya, kita udah punya authpage kyk gini :

Cuman klu button login atau register kita pencet, tar dapatnya halaman error, soalnya databasenya blom ada.. :D Sooowww....
Next bikin database baru pake XAMPP,..
Naah...databasenya kosong ajjah, soalnya tar kita pke migrate di laravelnya buat ngisi2 tabel... So.. config laravelnya biar konek ke database yang baru kita buat, buka .env file, terus jadiin kyk gini :
Naaah... klu udah mari kita migrate laravelnya. Didalam migrate folder udah ada 2 biji migrate, mari kita liad2 dl... :D


Soww.... jalanin command ini "php artisan migrate" :
Terus klu kita balik ke database yg di XAMPPnya udah berubah jadi kyk gini :
Terus mari kita coba buat daftar dl untuk pertama kalinya :
Terus didatabase untuk user tabelnya udah ada isinya kyk gini :
Sooo...berhasil... :D
Jadi sekarang udh bisa login dan logout.. sssiiips... cukup demikian untuk permainan authentikasi yang cukup sederhana ini... :)

Berikutnya adalah midleware yg bisa dilihat di part II....

Wednesday, August 3, 2016

php_mailparse.dll for PHP 7 in XAMPP Windows 7

Download mail parse from this link...
and extract it, then paste the php_mailparse.dll to your php/ext directory :
Then enable php_mailparse by adding  "extension=php_mailparse.dll" in php.ini, this line should be below hp_mbstring.dll line like this :
Okiee.. Now you are good to rock... Restart XAMPP... then run update composer....

Doonneee... :D

Monday, August 1, 2016

Membuat CRUD Sederhana di Laravel 5.2 - Part II

Sebelumnya kita telah membuat database dan konfigurasinya di part 1. Nah... disini akan dilanjutkan dibagian viewnya dl, terus baru ke kontroller...Soo...pertama-tama kita buat controllernya, so beralih ke cmd, terus ketik
php artisan make:controller akatsukiController
Hasilnya :
Terus bikin modelnya : {modelnya harus sama dengan nama tabel di databasenya} {klu modelnya beda tar didalam modelnya ditaroin protected $table=''nama_tabels" nama tabel harus jamak jadi ada "S" dibelakangnya}


Naah... disini nama modelnya sama dengan nama tabel yang dibuat dipart 1 sebelumnya, so model sama database itu otomatis konek di laravel, jadi kita g' usah repot ketik mysql commandnya...ehehe.. :D

Terus kita buat route barunya di file route.php :
Route::resource('isitabel','akatsukiController');
Terus dibagian akatsukiController kita tambain 1 biji fungsi {ini buat ngetest ajjah... :)}
public function index()
    {
     $isiTable = akatsuki_tables::all();
     return $isiTable;
    }
Intinya fungsi index() itu cuma nampilin semua isi tabelnya, untuk selengkapnya bisa dilihat di dokumentasi mengenai controller restful resource di page ini...Next... klu kita run... Hasilnya :

Naah... kliatan isi semua database yg kita buat sebelumnya...yeeei.....Sampai sini berarti kita udah bisa konek kedatabase lewat model terus controllernya.... :)


Berikutnya kita pengen di controller ini returnya pake view... So mari kita buat bebeerapa view-nya, {ini viewnya pake blade.php, tapi masih basic, jadi moga2 bisa keep up with me.. :), tapi intinya klu udah tau php, blade bisa jadi cepet, soalnya didalam blade bisa pake php juga.. :)}
Pertama-tama kita buat folder masterview terus didalamnya ditaroin 2 biji file "masterpage.blade.php" dan "menupage.blade.php" {ini ngasal ajjah sebenernya wkwkwk... :v}, file2nya kyk gini :




































Di dalam master page, kita ada @yield, nanti yield ini bakalan diganti pas dia dipanggil, terus ada @include, maksdunya ngambil semua isi file yg diinclude, dalam hal ini menu....
Terus kita buat index.blade.php didalam folder akatsuki view kyk gini :
Di situ ada @extends, mksdnya dia ngereference ke masterpage yagn ada di folder masterview, terus ada section('title') itu ngeganttin yang yield di masterpage, teruuus... didalam foreach ada $alldata, nah ini itu data yang kita kirim dari controllernya, jadi dicontrollernya kyk gini :
Naah... itu 'alldata'-nya sebagai key, terus isinya adalah $isiTable.... Sooo klu kita run. hasilnya....
Naaah... No-nya salah yaaak... wkwkwk... gpp.. tapi intinya kita udah bisa nampilin datanya agak lebih cantik... :)

Siip... part II sampe sini dulu... *ngantuk eeeuy... :v