menu

Phalcon - Koneksi database and add vendor


Pada tutorial kali ini kita akan melanjutkan project phalcon yang sebelumnya sudah sampai pada tutorial restruktur phalcon view.

Tutorial kali ini akan membahas tentang membuat koneksi database pada phalcon dan instalasi vendor, oke langsung saja kita mulai experimentnya.

Sebelum membuat koneksi database, buat databasenya terlebih dahulu pada phpmyadmin seperti pada tutorial berikut,

Jika database sudah dibuat, selanjutnya kita akan membuat koneksi database terlebih dahulu, caranya buka file config pada path /app/config/ dan edit bagian database menjadi seperti ini,
'database' => [
    'adapter'     => 'Mysql',
    'host'        => 'localhost',
    'username'    => 'root',
    'password'    => 'rahasia',
    'dbname'      => 'codedoct_phalcon',
    'charset'     => 'utf8',
],

Untuk mengetesnya buka terminal, masuk kedirectory project dan sesuaikan username, password, dan database name pada mysql  
$phalcon migration run

Sehingga akan muncul tampilan seperti pada gambar dbawah,


Jika muncul seperti pada gambar dibawah, berarti username atau password atau dbname salah di masukan.


Selanjutnya instalasi composer bisa lihat disini, jika sudah buat file composer.json pada project phalcon, dan isikan code berikut,
{
 "name": "codedoct",
 "type": "project",
 "authors": [
            {
               "name": "Mihawk"
            }
        ],
 "require": {
  "guzzlehttp/guzzle": "~6.0"
 }
}

Composer akan membuat folder baru bernama vendor dan file composer.lock sehingga akan tampak seperti gambar dibawah strukturnya,



===DONE!===

Phalcon - Restruktur volt


Tutorial kemarin kita sudah mempelajari rules atau cara kerja route-controller-view pada phalcon, sekarang kita akan mempelajari struktur volt sehingga lebih struktural, oke langsung saja kita mulai experimentnya,

Pertama, buka halaman users yang sudah kita buat sebelumnya pada browser sehingga akan tampak gambar seperti ini,


Pada gambar diatas dapat dilihat ada margin kiri pada text "Hello codedoct!!!" sedangkan pada halaman read.volt kita hanya menambahkan code ini,


Adanya margin tersebut dikarenakan pada phalcon secara default setiap akan request halaman, halaman akan memanggil halaman /app/views/index.volt sebagai deafultnya, untuk memudahkan development dengan multi layouts kita akan ubah code index.volt pada path /app/views/ menjadi seperti ini,
{{ content() }}

Kemudian, pada path /app/views/layouts/ tambahkan file default1.volt dan isikan code berikut,
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
        <title>{{ title ? title|e|striptags : 'Untitled' }}</title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    </head>
    <body>
        <div class="container">
            {% block content %}
            {% endblock %}
        </div>
        <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
        <!-- Latest compiled and minified JavaScript -->
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    </body>
</html>
Pada code diatas kita sudah menambahkan condition untuk menampilkan title maka pada UserController.volt pada path /app/controllers/ kita ubah codenya menjadi seperti ini,
<?php

class UserController extends ControllerBase
{
    public function readAction()
    {
     $this->view->title = "Phalcon - User";
    }
}

Terakhir ubah code file read.volt pada path /app/views/user/ menjadi seperti ini,
{% extends 'layouts/default1.volt' %}

{% block content %}
 <br/>
 Hello codedoct!!!
{% endblock %}

Dapat dilihat pada code diatas, kita meng-extends halaman read.volt pada halaman default1.volt sehingga akan tampak seperti pada gambar dibawah,


===DONE!===
   

Laravel - RESTful project (API post)


Pada tutorial sebelumnya kita sudah membuat API untuk method get yang digunakan untuk menampilkan list user yang ada, tutorial kali ini kita akan bereksperiment membuat API untuk method post yang digunakan untuk menambah data list user.

Oke langsung saja kita mulai experimentnya.
Pertama buat terlebih dahulu routes untuk method store-user, dengan menambahkan code pada path /protected/app/routes/api.php sehingga code-nya akan tampak seperti ini,
<?php 

//////////
// CRUD //
//////////
//pahamilah group route dibawah
Route::group(array('prefix' => 'crud'), function(){
 Route::get('users', 'Controller\Api\UserController@getUsers');
 Route::post('store-user', 'Controller\Api\UserController@storeUser');
});

Selanjutnya, tambahkan function method baru storeUser pada controller UserController pada path /protected/app/controllers/api/ sehingga code-nya akan tampak seperti ini,
<?php namespace Controller\Api;

use Model\User;
use \Response;
use \Validator;
use \Input;


class UserController extends \BaseController 
{
 public function getUsers()
 {
  $users = User::get();

  $response['status'] = 'OK';
  $response['result'] = $users;

  return Response::json($response);
 }

 public function storeUser()
 {
  $validator = Validator::make(
   Input::all(),
   array(
    "name"     => "required",
    "username"    => "required|unique:users,username",
    "email"     => "required|email|unique:users,email",
       "password"              => "required|min:6",
   )
  );
  // dd($_POST);
  if ($validator->passes()) {
      $user = User::storeUser(Input::all());
      // dd($_POST);
      $response['status'] = 'OK';
      $response['result'] = $user;
   return Response::json($response);
     }
     else {
      $response['status'] = 'ERROR';
      $response['message'] = $validator->messages();
   return Response::json($response);
     }
 }

}

Terakhir test menggunakan postman dengan memasukan url http://localhost/tempat-meletakkan-project-anda/api/crud/store-user dengan method POST dan body seperti gambar dibawah ini,


Sehingga saat kita klik Send maka hasilnya akan tampak seperti ini,



===DONE!===

Laravel - RESTful project (API get)


Pada tutorial kali ini kita akan bereksperimen untuk membuat sebuah project RESTful dari project yang sebelumnya sudah kita buat, yaitu laravel. project RESTful ini akan dibuat dengan menggunakan framework laravel, mungkin jika ada waktu lebih untuk chapter microservice kita akan menggunakan Ruby, GoLang dan Phalcon, hehe..

Tutorial kali ini mengharuskan anda untuk menyelesaikan tutorial-tutorial laravel sebelumnya, agar paham terlebih dahulu sebelum anda masuk ke tutorial ini. Tapi jika anda sudah sangat paham tentang laravel, anda bisa mendownload langsung project laravel yang sudah jadi disini.

Oke, jika anda sudah mendownload filenya sekarang buka fiel routes.php pada path protected/app/ edit menjadi seperti ini,
<?php

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the Closure to execute when that URI is requested.
|
*/

//--------------------------WEB---------------------------
Route::group(array('prefix' => ''), function() 
{
 require app_path().'/routes/web.php';
});

Route::group(array('prefix' => 'api'), function() 
{
 require app_path().'/routes/api.php';
});

Selanjutnya, pada path protected/app/routes/ edit file api.php menjadi seperti ini,
<?php 

//////////
// CRUD //
//////////
//pahamilah group route dibawah
Route::group(array('prefix' => 'crud'), function(){
 Route::get('users', 'Controller\Api\UserController@getUsers');
});

Kemudian, buat file controller baru dengan nama UserController pada path protected/app/controllers/api/ isikan code berikut,
<?php namespace Controller\Api;

use Model\User;
use \Response;
use \Validator;
use \Input;


class UserController extends \BaseController 
{
 public function getUsers()
 {
  $users = User::get();

  $response['status'] = 'OK';
  $response['result'] = $users;

  return Response::json($response);
 }
}

Untuk mengetesnya dapat dilakukan dengan cara intall postman terlebih dahulu, postman sendiri merupakan salah satu plugin dari chrome sehingga untuk dapat menginstallnya terlebih dahulu anda harus menginstall chrome kemudian cari plugin postman untuk chrome dan pasang atau install pada chrome.

Cara menggunakan postman sangatlah mudah, buat akun terlebih dahulu kemudian Sign In,



Pada gambar diatas method yang kita gunakan adalah GET dan URL-nya merupakan url dari routes api yang baru saja kita buat. Tekan Send untuk test sehingga tampilannya akan tampak seperti gambar dibawah ini,



===DONE!===

How to - Setup project laravel on ubuntu server


Setiap kali setup project laravel pada server atau komputer baru pasti ada banyak sekali error yang muncul, dan untuk mempercepat proses setup tersebut sekaligus mendokumentasikannya codedoct akan membagikan cara setup semuanya

Pertama, setup dulu lamp servernya bisa lihat disini, selanjutnya clone project laravel caranya,
clone https://github.com/victra/laravel.git //ganti dengan nama project github yang akan di clone
cd nama_project_yang_baru_di_clone //masuk ke folder project
sudo chown -R nama_user_komputer:nama_user_komputer . //ubah user akses
composer install //jika terjadi error masukan syntax composer update --no-scripts

Kemudian migrate dan seed database,
buat database baru pada phpmyadmin caranya bisa lihat disini, cukup sampai create databasenya saja. Jika sudah, masukan nama database tadi pada path /app/config/database.php sehingga terlihat seperti ini,


Dan run code berikut pada terminal,
cd /var/www/html/path/project
php artisan migrate --seed
Sehingga akan tampak seperti ini,


tekan y kemudian [enter]

Setelah itu buat agar semua url project laravel kita bisa dibuka,
sudo vim /etc/apache2/sites-enabled/000-default.conf
//tambahkan code dibawah
<Directory "/var/www/html/path/project/anda">
         Allowoverride All
</Directory>
Sehingga akan tampak seperti ini,


Terakhir enable module rewrite dengan cara,
sudo a2enmod rewrite
sudo service apache2 restart

===DONE!===

Phalcon - Routes, controller, view

 

Kembali lagi ditutorial phalcon,

Pada tutorial kemarin kita sudah membuat sebuah project phalcon dan mensetupnya agar bisa di akses di local kita, kali ini codedoct akan membagikan tutorial tentang pemahaman route, controller, dan view pada phalcon.

Oke langsung saja kita mulai tutorialnya, dalam experiment kali ini kita akan membuat halaman untuk users,
Pertama, buat terlebih dahulu route yang akan mengarahkan ke controller UserController dengan mengedit code route.php pada path /app/config/ menjadi seperti ini,
<?php

$router = $di->getRouter();

// Define your routes here
/**
 * Get user lists data by query
 */
$router->addGet(
    "/users",
    [
        "controller"        => "user",
        "action"            => "read"
    ]
);


$router->handle();

Selanjutnya, buat file controller baru dengan nama UserController.php pada path /app/controllers/ isikan code berikut,
<?php

class UserController extends ControllerBase
{
    public function readAction()
    {
     $this->view;
    }
}

Terakhir, buat file view/volt baru dengan nama read.volt pada path /app/views/user dan isikan code berikut,
<br/>
Hello codedoct!!!

Sehinnga saat kita browse url project akan menampilkan tampilan seperti ini,



===DONE!===

Phalcon - Create project (ubuntu)

  

Hello codedocters, pada tutorial kali ini kita akan melanjutkan tutorial phalcon. Sebelumnya kita sudah  menginstall phalcon pada ubuntu kita, kali ini kita akan memulai membuat sebuah project phalcon sekaligus perkenalan pada salah satu framework PHP yang relatif masih baru ini.

Oke, kita mulai saja experiment phalconnya..

Pertama, buat project phalconnya terlebih dahulu dengan cara,
phalcon create-project phalcon-experiment_3_1_2

Berikut struktur directory phalcon,


Jika project sudah dibuat coba browse url pada localhost, jika terjadi error pada cache tinggal beri full akses saja folder cachenya. caranya,
cd (name_project)
sudo chmod -R 777 cache

Jangan lupa beri fullakses pada apache kalian dengan cara buka file 000-default.conf pada path /etc/apache2/site-available/ dan tambahkan code berikut,


Terakhir restart apache dengan cara,
sudo service apache2 restart

Buka browser, sehingga tampilannya akan tampak seperti ini,
 

===DONE!===