프레임워크

    [Laravel] 라라벨 데이터베이스와 모델 (쿼리빌더, 옐로퀸트)

    라라벨에서 쿼리를 작성하는 방법은 간단하다. 레거시 PHP 에서 쿼리를 작성하는 방법은 PDO(PHP Data Object)를 사용하더라도 그다지 보기 좋은 것은 아니었다. 예를 들자면, $pdo = new PDO(...); $sth = $pdo->prepare("SELECT * FROM users"); if ($sth->execute()) { $users = []; while ($user = $sth->fetchObject()) { array_push($users, $user); } } 이렇게 생긴 기존의 레거시 코드(mysqli, mysql 과 같은 더 low Level API 를 사용하면 보기가 안 좋아진다.)를 라라벨의 쿼리빌더를 다음과 같이 간단하게 표현할 수 있다. $users = DB::ta..

    [Laravel] 라라벨 블레이드 템플릿 (상속, 컴포넌트, 슬릇)

    이번에는 블레이드 템플릿에서 상속, 컴포넌트, 뷰 컴포저에 대해 간단히 알아보도록 하자. 블레이드에는 여러 지시어(Directive)가 존재하는데, 상속, 컴포넌트, 슬릇 기능 등은 많이 쓰이는 기능이다. 따라서 이를 대표적으로 알아보자. 지시어의 수가 다소 많은터라 나도 다 알지 못한다. 상속 상속과 관련된 지시어는 @extends, @yield, @section, @show, @stack 이 존재한다. 자바스크립트 템플릿을 사용하듯 블레이드를 사용해서도 템플릿을 상속하고, 다른 템플릿을 포함시킬 수 있는 기능을 가지고 있다. 즉, 템플릿을 기준에 따라 분리가 가능하다는 이야기다. 다만, 다소 헷갈리는 기능들이 많기 때문에 차이점을 알아두면 좋다. @extends @extends 는 자식 템플릿이 특정..

    [Laravel] 라라벨 블레이드 템플릿 (보간, 조건문, 반복문)

    라라벨은 풀스택 프레임워크이기에 프론트엔드도 어느정도 개발할 수 있고, 뷰나 리액트같은 SPA(Single Page Application) 프레임워크를 사용할 수도 있다. 그러한 프레임워크를 사용하여 컴포넌트를 사용하기 위한 기반 템플릿이 있는데, 라라벨의 블레이드 템플릿이 그러하다. PHP는 언어이면서 자체적으로 템플릿의 역할도 겸할 수 있는데, 블레이드는 템플릿의 역할을 보다 강화시킨 것이다. 많이 알려져 있는데 PHP 템플릿인 Twig, Mustache 랑 같은 개념이다. 블레이드 템플릿 블레이드 템플릿은 라라벨에서 프론트엔드 마크업 및 컴포넌트를 포함하고 작성하기 위한 템플릿이다. 일반적인 PHP 템플릿처럼 if, for 와 같은 제어구조를 사용할 수도 있고, 다른 템플릿을 상속받고 슬릇(Slot..

    [Laravel] 라라벨 라우팅과 컨트롤러

    이번 포스트에서는 라라벨에서 라우팅에 대해 간단하게 알아본다. 컨트롤러는 다음 포스트에 알아보도록 하자. 블로그의 특성상 글이 시리즈로 이어지는 것은 썩 좋지 않기 때문에 기능에 대한 사전식 나열이나 일부 설명이 첨부되는 형식으로만 작성될 것이다. MVC(Model, View, Controller) 라라벨은 MVC 아키텍쳐를 따르는 프레임워크다. Model 은 어플리케이션에서 사용자에게 보여주고 싶은것, 일반적으로 데이터 또는 데이터베이스이며, View 는 이러한 모델을 사용자에게 어떠한 인터페이스로 보여줄 것인지를 말하는 것이며, Controller 는 그 중간에서 모델의 데이터를 얻어오거나 저장하여 뷰에게 이 사실을 통지한다. 여기서 통지라는 것은 Observer 패턴의 Notify 로 통지하는 것과..

    [Laravel] 라라벨 개발환경 구축하기 (feat. 홈스테드, 도커)

    이번 포스트에서는 라라벨의 개발환경을 구축해보도록 하자. [Laravel] 라라벨 프레임워크 시작하기에서 했던 것처럼 직접 php artisan serve 를 사용해서 로컬에서 서버를 돌려도 좋지만, 그건 일관성있는 개발환경이 될 수 없기 때문에 다른 방법을 써보는 것이 좋다. 라라벨에서 개발 환경을 구축하는 방법으로는 대표적으로 홈스테드와 도커가 있는데, 홈스테드의 경우 예전부터 써오던 방법이고, 도커로 사용하는 것은 추가된지 얼마 안 된것으로 생각된다. Laravel Homestead Homestead 는 주로 Windows 에서, Valet 의 경우에는 Mac 에서 사용한다만, 포스팅의 기준이 Windows 이기 때문에 이를 기준으로 작성한다. 먼저 홈스테드를 사용하기 위해서는 Vagrant, 그리..