긍정적인 사고와 행동으로 선한 영향력을 줄 수 있도록

PHP

php(Laravel)2

리거니 2021. 8. 27. 14:13

VS 에서의 편리한 라이브러리 다운

( Laravel blade spacer , Laravel goto view , Laravel extra intellisense

php intelephense , getter and setter generator , Lavabel blade snippets

bracket pair colorizer , korea (한글판) , )

 

 

<<<<< 중요

 

요청받음 -> Laravel 에서의 미들웨어(코드)를 거침 -> route(web,api php 등 )에서 요청처리코드 가 mapping 됨 -> 응답을 html로 전송

 

미들웨어 - 사전에 처리해줌 (사용자인증 등을 해줌)

- 로그인 하지 않거나 회원이 아니면 route에 도달하기전에 걸러줌

 

route - Controllen class 에서 메소드를 정리 및 수정함 . 이후 View를 반환함

- View 생성하기위해 대응되는 php파일을 실행하여 html을 동적으로 생성

- 이후 html(결과)을 유저에게 전송

 

- 동적으로 만들기위해 사용하는 것이 blade template engine

문법들은 @로 시작함,

 

 

 

 

http는 요청할때마다 연결

 

- 돌아가는 원리 -

즉 , 사용자는 (로그인 처리 등) 매번 요청을 해야 함..

 

그 정보들은 서버의 메모리 공간(session) 에 할당 저장

모든 사용자들의 정보를 각각 따로따로 저장.

 

세션마다 Unique key가 있다. key를 알면 값을 알 수 있듯이

세션의 key를 응답에 실어서 쿠키로 보낸다 (클라이언트 local쪽에)

이후 웹브라우저에서 받은 키를 자동으로 서버에 보낸다

그걸 받은 서버에서 그 키에 해당하는 값을 대응하여 '로그인한 사용자네' 하고 바로 넘어간다. ( 자동 로그인 , 중복 제거 등 )

 

 

>>>>>>

 

웹 서버의 중요한 파일들은 VS의 public에 있음

 

index.php에서 laravel 시작점

 

터미널 명령어 : Ctrl + c 하면 다시 명령어창 (기존 사용을 죽임)

: php artisan serve --port=9090 ( 9090으로 변경하여 연동, 일시적)

 

: php artisan help (명령어 도움창)

( https://laravel.com/docs/8.x/structure#the-app-directory

에서도 찾을 수 있음 )

 

: php artisan make:controller TestController

( app-Http-Controllers에서 TestController 파일 생성 )

 

: php artisan route:list (route 들의 list를 출력)

 

 

 

web.php 에서의

 

1) mapping 시키는 것 function으로 사용하는 법

 

Route::get('/test2', function () {

return view('test.index');

});

 

= get 방식 요청이 오면 function으로 view(전역함수)를 리턴하여 실행

resources-views-test폴더의 index.blade.php로 이동

 

= view 폴더 밑에 index.balde.php 폴더를 생성되어야 함

 

-> http://127.0.0.1:8000/test2 실행시 test 폴더안의 index.blade.php가 실행됨.

 

 

 

 

2) mapping 시키는 것 Controllers

 

app-Http-TestController.php 에서

 

public function index() {

$name = "일지매";

$age = 23;

return view('test.show', compact ('name', 'age'));

}

= views 에서 test폴더의 show.blade.php에 해당하는 name,age 변수를 실행

 

Route::get('/test5',[TestController::class, 'index']);

= 8000/test5를 실행하면 TestController의 index함수 실행

 

 

;;;;;; 결국 돌아가는 원리는 routes-web.php 에서

1) Route::get('/~~~') ~~~ 로 <실행>

2) ('/~~~')에 해당하는 파일에서 함수 등의 <기능 추가>

 

 

*모든 파일은 각각 저장을 따로 해야 됨

 

 

등록 - 등록폼 , DB에 등록

 

-> 등록해주세요 요청 (프론트)

-> DB에 등록하고 데이터를 전송 (백엔드)

 

PostController (게시글)

1) create (생성) -> View로 연결시켜서 만들어야 함 =return view('posts.create')

2) store (등록)

3) edit (수정) -> view('posts.edit');

 

1) http에서 localhost/8000/posts/create 요청이 오면 post.create 메소드를 실행하여

posts.create 결과값이 반환되도록

 

result

 

html하고 Tab 하면 자동생성

 

testfrom+input+ -> +하면됨

 

 

부트스트랩 = CSS 를 통해 깔끔하게 디자인 해줌