Advertisement
Guest User

Untitled

a guest
Aug 13th, 2017
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.80 KB | None | 0 0
  1. Panduan Setup Laravel 5.4 dengan Homestead
  2. Tarikh Dicipta: 7 May 2017
  3. Tarikh Kemaskini: 7 Jul 2017
  4. *************************************************************
  5.  
  6. Intro: Homestead adalah virtual server rasmi bagi komuiniti Laravelyang berasaskan Ubuntu 16.04. Kita akan menulis kod aturcara di Windows, dan vagrant akan sync dengan virtual server Homestead kita secara automatik. Database dan Webserver kita di Homestead. IP virtual server Homestead adalah 192.168.10.10. Username: vagrant, password : vagrant.
  7.  
  8. Install:
  9. 1. VirtualBox wajib
  10. 2. Vagrant –> Restart wajib
  11. 3. Git sunat muaakad
  12. 4. PHPStorm sunat muaakad
  13. 5. Navicat sunat
  14.  
  15. Setup:
  16. Dengan menggunakan Git Bash,
  17. 1. Jana SSH key kalau belum ada:
  18. >> cd
  19. >> ssh-keygen -t rsa -C “youremail@vendor.com”
  20.  
  21. 2. Download Homestead
  22. >> cd
  23. >> vagrant box add laravel/homestead
  24. >> cd
  25. >> git clone https://github.com/laravel/homestead.git Homestead
  26. >> cd Homestead
  27. >> git checkout v5.4.0
  28. >> bash init.sh
  29.  
  30. 3. Configure Homestead
  31. >> explorer .
  32.  
  33. Buka file Homestead.yaml dengan menggunakan SublimeText atau Bracket
  34.  
  35. KETERANGAN:
  36. ———–
  37. Kita akan uruskan projek Laravel kita di dalam folder C:/Projects.
  38. Makna kata, kalau kita ada project yang bernama iGaleri, kita akan simpan di
  39. C:/Projects/iGaleri
  40. Projek-projek lain yang berasaskan Laravel pun kita akan simpan di C:/Projects juga. Anda bebas untuk menggunakan D:/Projects. Tapi dalam panduan ini, saya mengandaikan anda menggunakan C:/Projects
  41.  
  42. Edit file Homestead.yaml supaya seperti di bawah.
  43.  
  44. **************************************
  45.  
  46. ip: “192.168.10.10”
  47. memory: 1024
  48. cpus: 1
  49. provider: virtualbox
  50.  
  51. authorize: ~/.ssh/id_rsa.pub
  52.  
  53. keys:
  54. – ~/.ssh/id_rsa
  55.  
  56. folders:
  57. – map: C:/Projects
  58. to: /home/vagrant/Projects
  59.  
  60. sites:
  61. – map: igaleri.dev.
  62. to: /home/vagrant/Projects/iGaleri/public
  63.  
  64. databases:
  65. – iGaleri
  66.  
  67. **************************************
  68.  
  69. Cipta folder Projects di dalam drive C:
  70.  
  71. 4. Install Homestead ke dalam VirtualBox
  72. >> cd
  73. >> cd Homestead
  74. >> vagrant up
  75.  
  76. 5. Masuk ke dalam server
  77. >> vagrant ssh
  78.  
  79. 6. Di dalam server, masuk ke dalam folder Projects dan cipta projek laravel kita, iGaleri
  80. >> cd Projects
  81. >> laravel new iGaleri
  82.  
  83. 7. Set nama domain project kita (iGaleri.dev di file host)
  84. a. Buka C:\Windows\System32\drivers\etc
  85. b. Copy host ke Desktop
  86. c. Edit host, tambah line di bawah
  87. 192.168.10.10 iGaleri.dev
  88. d. Try utk ping iGaleri.dev di command prompt (CMD). Sepatutnya akan keluar
  89. Reply from 192.168.10.10: bytes=32 time<1ms TTL=64
  90. e. Buka URL iGaleri.dev di Chrome. Anda sepatutnya akan nampak Homepage projek anda.
  91.  
  92. 7. Install plugin-plugin di bawah untuk PHPStorm
  93. a. .ignore
  94. b. .env
  95. c. Laravel
  96. d. Symfony
  97.  
  98. 8. Buka project kita dengan PHPStorm
  99. a. Create New Project from Existing File
  100. b. Bawah sekali (Source file are in local directory, no web server is yet configured)
  101. c. Set Project Root and Resource Root
  102. Folder project kita as Project Root
  103. Folder public dalam project kita as Resource Root
  104.  
  105. 9. Configure Project kita supaya serasi dengan PHPStorm
  106. a. Enable plugin Laravel untuk projek kita
  107. i. File –> Setting –> Search Laravel
  108. ii. Tick checkbox :: Enable plugin for this project
  109. iii. Tick checkbox :: Use AutoPupop for completion ….
  110. b. Install IDEHelper package for our project
  111. i. Short guide: http://arhamzul.com/panduan-pendek-install-laravel-ide-helper/
  112. ii. Official guide: https://github.com/barryvdh/laravel-ide-helper
  113. c. Set composer utk project kita
  114. i. Path to composer.json (dlm project kita)
  115. ii. Click here to download from getcomposer.org
  116. d. Set PHP Intepreter utk PHPStorm dan Project kita
  117. i. File –> Setting –> Languages & Frameworks –> PHP
  118. ii. PHP Language Level : 7.1
  119. ii. CLI Interpreter: (point ke lokasi php.exe terkini anda. Xampp pun boleh)
  120. e. Set PHPUnit untuk kegunaan masa depan
  121. i. File –> Setting –> Languages & Frameworks –> PHP –> PHPUnit
  122. ii. Select :: Use Composer autoloader
  123. Path to script :: autoload.php dlm project kita
  124. iii. Default configuration file
  125. Point to :: phpunit.xml dlm project kita
  126.  
  127. 10. Project Config
  128. a. Edit .env file
  129. APP_URL=http://iGaleri.app
  130. DB_DATABASE=iGaleri
  131. b. Edit app/config/app.php
  132. ‘timezone’ => ‘Asia/Kuala_Lumpur’,
  133.  
  134. 11. Fix Migration Bug
  135. Refer: http://arhamzul.com/laravel-5-4-migration-error-specified-key-long/
  136.  
  137.  
  138. =========
  139. Quick Note :: Laravel IDE Helper
  140.  
  141. URL: https://github.com/barryvdh/laravel-ide-helper
  142.  
  143. Masuk dlm server dan ke iGaleri (git bash)
  144. >> cd
  145. >> cd Homestead
  146. >> vagrant up
  147. >> cd Projects
  148. >> cd iGaleri
  149.  
  150. Run arahan di bawah
  151.  
  152. >> composer require barryvdh/laravel-ide-helper
  153.  
  154. Edit config/app.php dengan menggunakan PHPStorm.
  155. Tambah dalam array provider
  156.  
  157. Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
  158.  
  159. Dengan menggunakan git bash kembali
  160.  
  161. >> php artisan ide-helper:generate
  162.  
  163. Dengan menggunakan PhpStorm, edit composer.json
  164. Edit bahagian ini:
  165.  
  166. "post-update-cmd": [
  167. "Illuminate\\Foundation\\ComposerScripts::postUpdate",
  168. "php artisan ide-helper:generate",
  169. "php artisan ide-helper:meta",
  170. "php artisan optimize"
  171. ]
  172.  
  173. Dengan menggukan Git Bash, type arahan di bawah:
  174.  
  175. >> php artisan vendor:publish
  176. >> composer require doctrine/dbal
  177.  
  178. Dengan menggunakan PhpStorm, edit config/ide-helper.php
  179.  
  180. Set kan kepada
  181.  
  182. 'include_fluent' => true,
  183.  
  184. Kembali pada Git Bash, dan run arahan di bawah:
  185.  
  186. >> php artisan ide-helper:meta
  187.  
  188.  
  189. +++++++++++++ COMMAND +++++++++++++
  190. Nak run arahan vagrant, sila masuk dlm folder Homestead dulu
  191.  
  192. cd
  193. cd Homestead
  194. vagrant up
  195. vagrant halt
  196. vagrant destroy
  197. vagrant provision
  198.  
  199. Nak keluar dari server, type
  200.  
  201. exit
  202.  
  203. Arahan seperti
  204. composer require ....
  205. php artisan ....
  206.  
  207. memerlukan kita dlm folder iGaleri (di dalam server)
  208.  
  209.  
  210. ++++++++++++ MULAKAN DEV DENGAN ++++++++++++
  211. Bismillah....
  212.  
  213. cd
  214. cd Homestead
  215. vagrant up
  216. vagrant ssh
  217. cd Projects
  218. cd iGaleri
  219. .......
  220. .......
  221. exit
  222. vagrant halt
  223.  
  224. ----------------------
  225.  
  226. Arahan PHP Artisan
  227.  
  228. Buat Controller
  229. php artisan make:controller NamaController
  230.  
  231.  
  232.  
  233.  
  234.  
  235. +++++++++++++ SENI BINA +++++++++++++
  236.  
  237. Route : Untuk proses URL
  238. Controller : function untuk proses logic
  239. View : Untuk paparan (html, css, image, js)
  240. Model : Wakil table dalam database
  241.  
  242. Database table Laravel Model Laravel Controller Laravel Validation
  243. --------------- --------------- ------------------- --------------------
  244.  
  245. users User UserController UserRequest
  246. applications Application ApplicationController ApplicationRequest
  247. systems System SystemController SystemRequest
  248. audit_trails AuditTrail AuditTrailController AuditTrailRequest
  249. roles Role RoleController RoleRequest
  250.  
  251. :: PLURAL :: SINGULAR MODEL + Controller MODEL + Request
  252.  
  253.  
  254.  
  255. URL FILE / FOLDER FUNCTION TABLE
  256. ---------------- -------------- ------------------- ---------------------
  257. ...../contact-us contact_us contactUs contact_us / inquiries
  258.  
  259. KEBAB CASING SNAKE CAMEL SNAKE
  260.  
  261.  
  262. 1. create folder partials dalam folder views
  263. 2. create file navbar.blade.php dlm folder partials tadi
  264. 3. copy source code navigaton bar kita tadi, ke dlm navbar.blade.php
  265. 4. include file navbar.blade.php tadi ke dlm portal.layouts menggunakan arahan @include
  266. @include('partials.navbar')
  267.  
  268. ++++++++++++++++++++++
  269. LANGKAH DEMI LANGKAH PEMBANGUNAN MODUL DENGAN CRUD
  270.  
  271.  
  272. 1. Create model
  273. >> php artisan make:model Agency -mcr
  274.  
  275. 2. Edit migration file, utk cipta skema table agencies
  276. iGaleri / database / migrations / xxxxxx_create_agencies_table.php
  277.  
  278. 3. Transfer skema table tadi ke actual database
  279. >> php artisan migrate
  280. >> php artisan ide-helper:models
  281.  
  282. 4. Create skeleton file view, dlm folder views / agency
  283. a. index.blade.php
  284. b. create.blade.php
  285. c. edit.blade.php
  286. e. show.blade.php
  287.  
  288. 5. Create skeleton controller, letak code return view pada function
  289. a. index()
  290. b. create()
  291. c. edit()
  292. d. show()
  293.  
  294. return view('agency.index');
  295.  
  296. 6. Create routing dlm Route / web.php
  297. Route::get('agency', 'AgencyController@index')
  298. GET --> index, show, create, edit, destroy
  299. POST --> create, edit guna function store() dan update()
  300.  
  301. 7. Buat form untuk create.blade.php. Jangan lupa {{ csrf_field() }}
  302.  
  303. 8. Buat function store dlm controller, untuk simpan data ke DB.
  304. --> redirect ke /agency kalau berjaya
  305. --> redirect back kalau gagal
  306.  
  307. 9. Kalau data dah simpan properly, buat validation.
  308. >> php artisan make:request AgencyRequest
  309.  
  310. :: Jangan lupa untuk tukar authorize kepada true
  311. :: Jangan lupa pakai AgencyRequest dlm function store() dan update()
  312.  
  313. 10. Buat index.php utk senaraikan semua agency
  314. :: buat dia punya link utk user view detail record, edit dan delete.
  315.  
  316. 11. Buat function delete dlm controller
  317. Cari data then padam. Lepas tu redirect
  318.  
  319. 12. Isi function show (cari data dan pass kepada view show)
  320. Buat page show utk paparkan rekod agency secara terperinci.
  321.  
  322. 13. Buat edit
  323. Copy content dari create.blade.php punya form. Edit sesedap rasa...
  324. especially kat bahagian {{ old('nama_field', $defaultValue) }}
  325.  
  326. Copy function dari store(),
  327. ubah kat line
  328. $agency = new Agency() ---> $agency = Agency::findOrFail(id)
  329.  
  330. Jangan lupa utk pakai AgencyRequest dlm function update() ni
  331.  
  332.  
  333. S.I.A.P
  334.  
  335. -------------------------------------------
  336. Table ERD :: Kategori_Sistem
  337.  
  338. Model : Category
  339. table : categories (auto)
  340.  
  341. id (PK) :: default
  342. name (string)
  343. description (text)
  344. status (string) (contoh input:: active, inactive, vip)
  345. softDeletes() (deleted_at)
  346. created_at (timestamps) :: default
  347. updated_at (timestamps) :: default
  348.  
  349. * default : tak perlu buat
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement