instalasi laravel dan requsitenya

instalasi

    PHP >= 5.5.9 , saya sarankan untuk memiliki php 7 di banding memenuhi requirement
    bisa juga memakai xampp atau sejenis
    composer
    apache tidak terlalu di perlukan karena mirip dengan ionic sehingga bisa memakai command

    php artisan serve

untuk mac , linux , maupun windows akan sangat memerlukan terminal / command prompt untuk create project
sehingga pemahaman tentang global path akan sangat di perlukan

ketika masuk melalui terminal pastikan versi php anda sesuai dengan minimum atau lebih besar dengan cara

php -v

php version check

kemudian instalasi composer, untuk composer ini di perlukan layaknya maven atau ant di pemrograman java , composer bertugas untuk memenuhi segala dependency yang di perlukan oleh laravel dan yang sedikit mengejutkan adalah laravel memerlukan dependency dari symphony cara instalasi composer adalah ( dapat di lihat di https://getcomposer.org/doc/00-intro.md ) sebagai berikut

    https://getcomposer.org/download/

php -r “copy(‘https://getcomposer.org/installer’, ‘composer-setup.php’);”

php -r “if (hash_file(‘SHA384’, ‘composer-setup.php’) === ‘e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae’) { echo ‘Installer verified’; } else { echo ‘Installer corrupt’; unlink(‘composer-setup.php’); } echo PHP_EOL;”

php composer-setup.php

mv composer.phar /usr/local/bin/composer

php -r “unlink(‘composer-setup.php’);”

    instalasi laravel
    composer global require “laravel/installer”
    pada command prompt / terminal lakukan

    laravel new blog

sebagai tambahan untuk path di mac adalah sebagai berikut
which php -> /usr/bin/php
nano ~/.bash_profile -> tambahkan export PATH=/Applications/XAMPP/bin/:$PATH
save
source ~/.bash_profile

dan silahkan ketik php -v untuk dapat menggunakan php dari xampp di terminal / commandpromt

Primeface p:calendar css change child css class with form-control from bootstrap

This is the primefaces xhtml p:clendar

here is the p:calendar usage

1
 

and on the bottom of the pages add this to update when the browser is ready 😀

we are using widgetVar to modify this css class 😀

1
2
3
<script type="text/javascript">// <![CDATA[
$(document).ready(function () { PrimeFaces.widgets.german4.jq.children("input").addClass("form-control"); PrimeFaces.widgets.german5.jq.children("input").addClass("form-control"); });
// ]]></script>

Happy coding 😀

cara memperbaiki kesalahan file user akses

untuk mengembalikan secara mudah kesalahan yang di perbuat ketika melakukan chmod biasanya karena /* yakni dengan melakukan

yang ini di pergunakan untuk memperbaiki direktori kepanjangan dari direktori / directory

find . -type d -name \var\www\html\* -exec chmod 775 {} \;

ini untuk memperbaiki file dari -type f ( file )

find . -type f -name \var\www\html\* -exec chmod 664 {} \;

 

sehingga dengan mengeksekusi kedua perintah tersebut maka dapat di pastikan file anda minimal sudah kembali terproteksi untuk berada di udara terbuka 😀

membuat environment development testing dan production

pada yii di index file kita akan merubah / menambah

[code]
//choose environment development
$appEnv = filter_input(INPUT_ENV, ‘APPLICATION_ENV’, FILTER_SANITIZE_ENCODED);
$serverName = filter_input(INPUT_SERVER, "SERVER_NAME", FILTER_SANITIZE_SPECIAL_CHARS);
if (!isset($appEnv)) {
if (true === stripos($serverName, ‘localhost’)) {
$appEnv = "development";
} else
if (true === stripos($serverName, ‘www.meltonice.com’)) {
$appEnv = "testing";
} else
if (true === stripos($serverName, ‘www.kresna.host’)) {
$appEnv = "production";
} else {
$appEnv = "development";
}
}
if ($appEnv == "production") {
$config = dirname(__FILE__) . ‘/protected/config/production.php’;
}
if ($appEnv == "development") {
// remove the following lines when in production mode
defined(‘YII_DEBUG’) or define(‘YII_DEBUG’, true);
$config = dirname(__FILE__) . ‘/protected/config/main.php’;
}
if ($appEnv == "testing") {
$config = dirname(__FILE__) . ‘/protected/config/testing.php’;
}

[/code]

sehingga kita dapat membuat file config masing2 dan tanpa repot untuk merubah setting dan konfigurasi untuk database, logging dan lain sebagainya 😀

redirect dengan count down

sebelum saya tertidur karena mengantuk dan kondisi kurang fit saya akan membagikan info tentang bagaimana redirect menggunakan ajax beserta count down js 😀

pertama install ecountdown action

lalu set flash yang akan di tampilkan beserta countdownnya dan ajax request

[code]
<?php if (Yii::app()->user->hasFlash(‘order’)) { ?>

<div class="flash-success">
<?php echo Yii::app()->user->getFlash(‘order’); ?>
</div>
<?php
$this->widget(‘ext.ecountdownaction.ECountdownAction’, array(
‘seconds’ => 10, //8 seconds
‘action’ => ‘   $.ajax(
{
type: "POST",
url: location.pathname+"/index.php?r=site/redirect",
success: function (results)
{
obj = JSON.parse(results);

window.location.href=obj.redirect;
}
});’, //action code…
)
);
}
//
//$this->redirect(array(‘user/registration’), array(‘model’ => new LoginForm));
?>

[/code]

 

lalu pada controller

[code]
public function actionRedirect() {
echo json_encode(array(‘redirect’ => $this->createUrl(‘/user/registration’)));
}

[/code]

 

cukup sederhana tapi membuat pusing LOL

install composer via brew :D

ketika akan menginstall yii2 di mac osx yang memakai composer , kemudian muncul error sebagai berikut :

 brew install composer PHP Warning:  Module ‘curl’ already loaded in Unknown on line 0 composer: Missing PHP53, PHP54, PHP55 or PHP56 from homebrew-php.

 

kemudian saya mengatasi nya dengan browsing di google dan menemukan source yang memberikan tulisan sebagai berikut :

brew install php56

kemudian ternyata masih belum bisa memakai composer 🙁

masih harus doing this ->

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

dan somehow 
tidak bisa memakai php composer.phar jadi hanya memakai composer saja 😀

php extension untuk mac osx maverick

http://stackoverflow.com/questions/6588174/enabling-postgresql-support-in-php-on-mac-os-x

The PHP version that comes bundled with OS X doesn’t include PostgreSQL. You’ll have to compile the extension yourself. Here are some instructions:

  1. Find your version of PHP: php -v.
  2. Download the version of PHP that matches yours: curl -O http://us.php.net/distributions/php-5.3.3.tar.gz. (This example downloads PHP 5.3.3 but this must match your version)
  3. Extract the archive you downloaded: tar -xzvf php-5.3.3.tar.gz
  4. Change to the PostgreSQL’s extension directory: cd php-5.3.3/ext/pgsql/
  5. Type phpize.
  6. Type ./configure.
  7. Type make.
  8. Type sudo make install.
  9. Add the extension to you php.ini file by adding extension=pgsql.so. (You may already have done this)
  10. Restart Apache.

Update for OS X Mountain Lion Apple has removed autoconf from the newer versions of XCode so the procedure above will fail at #5. To solve that problem:

  1. Type /usr/bin/ruby -e "$(/usr/bin/curl -fksSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)". *->kecuali yang ini tidak bisa di pakai
  2. Type sudo chown -R $USER /usr/local/Cellar.*->ini juga gak perlu
  3. Type brew update.
  4. Type brew install autoconf.

That should install autoconf and allow you to install the module using the instructions above.

*tutorial di atas juga dapat di gunakan untuk curl ataupun extension yang lain untuk php extension ketia bermasalah

 

**note untuk install mcrypt harus install terlebih dahulu libmcrypt yang bisa di download di sini

  1. cd libmcrypt-2.5.8
  2. ./configure
    make
    sudo make install

kalau sudah baru lanjutkan di php/ext/mcrypt

phpize ./configure dan seterusnya

 

 

shared folder pada guest host virtual box linux

pertama buat folder di mana user bisa membuat folder

mkdir /home/ubuntu/sharedku

buat shared folder pada window devices ->shared folder setting

 

kemudian pada terminal ketik

sudo mount -o uid=1000,gid=1000 -t vboxsf Desktop /home/ubuntu/sharedku

 

* Desktop => nama machine yang di device->sharedfolder

 

 

untuk windows gunakan

\\VBOXSVR\<folder-name>

logging pada yii web apps

sering kali kita perlu untuk melakukan logging pada saat development, testing maupun production berikut adalah cara untuk setting loggin

[code]

‘log’ => array(
‘class’ => ‘CLogRouter’,
‘routes’ => array(

//disini di gunakan untuk file log
array(
‘class’ => ‘CFileLogRoute’,
‘levels’ => ‘info,trace’,
‘categories’ => ‘system.*’,
),

//di sini di gunakan untuk profiling database
array(‘class’ => ‘CProfileLogRoute’,
‘report’ => ‘summary’,),

//disini di gunakan untuk web log route yang akan di munculkan di halaman paling bawah website
array(
‘class’ => ‘CWebLogRoute’,
),

// ini adalah fitur yang paling penting ketika production yang akan mengirimkan log berupa info, trace, error dan warning terkecuali yang masuk class system.base.cmodule dan , system.db, systemcmodule , system.web.filters
array(
‘class’ => ‘CEmailLogRoute’,
‘levels’ => ‘info,trace,error, warning’,
’emails’ => ‘freddokresna@gmail.com’,
‘except’ => ‘system.base.CModule.* ,system.db.*, system.CModule.*,system.web.filters.CFilterChain’,
),
),
),

[/code]

untuk profiling database bisa di lihat di profiling database

membuat profiling untuk YII

pada index.php

[code]

Yii::beginProfile(‘blockID’);
Yii::createWebApplication($config)->run();

Yii::endProfile(‘blockID’);

[/code]

 

pada config di database kita set

[code]
‘db’ => array(
‘connectionString’ => ‘mysql:host=127.0.0.1:3306;dbname=mydb’,
’emulatePrepare’ => true,
‘username’ => ‘freddokresna’,
‘password’ => ‘freddokresna’,
‘charset’ => ‘utf8’,
‘enableProfiling’ => true,
),

[/code]

sehingga kita akan bisa melihat hasil profilling time dari query2 yang kita lakukan

membuat multiple application environment

pada web apps kita sering mempunyai beberapa settingan berbeda untuk koneksi database dan fitur config lainnya

mulai dari stage development, testing hingga production

berikut adalah cara untuk setting multiple app environment pada YII framework

sebagai contoh berikut adalah setting yang saya pakai di index.php

[code]

//choose environment development
$appEnv = filter_input(INPUT_ENV, ‘APPLICATION_ENV’, FILTER_SANITIZE_ENCODED);
$serverName = filter_input(INPUT_SERVER, "SERVER_NAME", FILTER_SANITIZE_SPECIAL_CHARS);
if (!isset($appEnv)) {
if (FALSE === stripos($serverName, ‘localhost’)) {
$appEnv = "development";
} else
if (FALSE === stripos($serverName, ‘www.meltonice.com’)) {
$appEnv = "testing";
} else
if (FALSE === stripos($serverName, ‘www.usa4u.com’)) {
$appEnv = "production";
} else {
$appEnv = "development";
}
}
if ($appEnv == "production") {
$config = dirname(__FILE__) . ‘/protected/config/production.php’;
}
if ($appEnv == "development") {
$config = dirname(__FILE__) . ‘/protected/config/main.php’;
}
if ($appEnv == "testing") {
$config = dirname(__FILE__) . ‘/protected/config/testing.php’;
}

[/code]