[Laravel 기초] 02. Hello World
Laravel의 기초 설정이 끝나면 화면에 Hello World를 출력해보도록 하자
Laravel은 MVC모델을 가지고 있다.
MVC는 Model, View, Controller의 약자로 하나의 어플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴이다.
View를 통해서 Controller로 접근이 가능하며 필요에 따라 Controller에서 Model을 거쳐서 View로 가거나 Controller에서 다시 View로 Response해준다.
HelloWorld를 출력하기 위해서 Model은 필요없다고 해도 View와 Controller는 만들어야 한다.
Laravel에는 atrisan라는 편리한 명령어가 있는데 그 수가 다양한다.
우선 atrisan이라는 명령어를 사용해서 Controller를 만들어보자.
서버가 실행되고 있는 명령 프롬프트는 나두고 새로운 명령프롬프트를 실행한다.
Laravel project가 있는 곳으로 이동한다.
1
|
cd C:\Bitnami\wampstack-7.4.14-0\apache2\htdocs\project
|
cs |
아래 명령어로 helloWorld의 컨트롤러 파일을 만든다.
php artisan make:controller [컨트롤러이름] --resource
1
|
php artisan make:controller HelloWorldController --resource
|
cs |
Project 폴더 > app > Http > Controllers 아래에 HelloWorldController.php가 정상적으로 생성된 것을 확인할 수 있다.
HelloWorldController.php 파일을 열어보면 아래와 같은 구성을 하고있다.
artisan 명령어를 이용하여 파일을 생서하면 기본적인 메소드를 자동으로 생성해준다.
HelloWorld를 문자열을 출력하기 위함이므로 Controller에 별다른 코드는 적어주지 않아도 된다.
routes 디렉토리로 가서 화면에 출력한 Controller를 추가해주자
routes > web.php에 Route::get('hello','App\Http\Controllers\HelloWorldController@index')를 추가
1
|
Route::get('/hello', 'App\Http\Controllers\HelloWorldController@index');
|
cs |
경로가 잘 추가됐는지 명령 프롬프트에서 확인해보자
1
|
php artisan route:list
|
cs |
위에 명령어는 Laravel의 라우트 목록을 조회하는 artisan 명령어이다.
위와 같은 화면이 나온다면 문제없이 잘 추가되었다는 것을 확인 할 수 있다.
다음으로는 view 파일을 추가하자
resources/views/ 로 이동하여 hello.blade.php를 만든다.
1
2
3
4
5
6
7
8
9
10
11
12
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>hello world</h1>
</body>
</html>
|
cs |
view파일 생성이 끝났다면 HelloWorldController.php로 돌아가서 index 메소드에 방금 만든 view파일을 보도록 코드를 적어준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HelloWorldController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('hello');
}
}
|
cs |
추가한 파일이 정상적으로 동작하는지 브라우저로 확인해보자
브라우저 실행 > 주소창에 http://127.0.0.1:8000/hello 입력
정상적으로 동작하고 있다.
controller명만으로 route에 추가하고 싶을 때
routes > web.php에 controller를 추가할때 Path를 전부 적어줘야지 에러가 나지 않는다.
Laravel 버전 7까지는 app > Providers > RouteServiceProvider.php에 있는 $namespace가 주석처리 되지 않았지만 Laravel 버전 8부터는 주석처리 되므로 주석을 풀어주면 Controller 명만으로 선언이 가능하다.
주석을 해제한다.
routes > web.php에 추가할 때 컨트롤러 명만 적는다
1
|
Route::get('/hello', 'HelloWorldController@index');
|
cs |
경로가 잘 추가됐는지 명령 프롬프트에서 확인
1
|
php artisan route:list
|
cs |
브라우저에서 확인
브라우저 열기 > 주소창에 127.0.0.1:8000/hello 입력
정상적으로 출력을 확인
매번 Path를 전부 다 적는건 귀찮으니 꼭 $namespasce의 주석을 해제하도록 하자