책 소개
요약
라라벨(Laravel)은 웹 장인들을 위한 PHP 프레임워크라는 슬로건하에 테일러 오트웰(Taylor Otwell)에 의해 주도적으로 개발된 모던 PHP 프레임워크다. 현재 라라벨은 PHP 개발자 커뮤니티에서 가장 주목받고 인기를 얻고 있는 프레임워크로 자리매김함에 따라, 수많은 전용 패키지들과 각종 학습 자원들이 인터넷에 시시각각 공개되고 있으며 앞으로는 더욱 많은 사용자층을 확보할 전망이다. 이 책은 라라벨을 이용해 애플리케이션을 만들 때 겪어야 하는 다양한 문제를 총망라하여 그 해법을 제공한다.
이 책에서 다루는 내용
■ 아파치에서 가상 호스트와 개발환경 설정
■ 사용자 인증 시스템 설정
■ RESTful 컨트롤러 사용
■ 애플리케이션 디버깅과 프로파일링
■ 아마존 S3 클라우드에 콘텐츠 저장
■ artisan 명령 행 툴 사용
■ 라라벨 애플리케이션에 자바스크립트와 제이쿼리 사용
■ 라라벨 단위 테스트
이 책의 대상 독자
이 책은 중급 PHP 개발자를 위한 것이다. 다양한 PHP 프레임워크나 라라벨 버전 3의 기초 지식이 있다면 이 책을 읽는 데 도움이 되며, MVC 구조와 객체지향 프로그래밍에 대한 지식이 있다면 그 또한 유익할 것이다.
이 책의 구성
1장, ‘라라벨 설정과 설치’: 라라벨을 설치해서 동작하게 하는 여러 방법을 다룬다.
2장, ‘폼 사용과 입력 값 수집’: 라라벨에서 폼을 사용하는 다양한 방법을 살펴본다. 라라벨의 폼 클래스 사용법과 몇 가지 기본 검증법을 다룬다.
3장, ‘애플리케이션 인증’: 사용자를 어떻게 인증하는지를 살펴본다. OAuth, OpenId, 그리고 여러 소셜 네트워크 서비스를 이용한 사용자 인증법을 다룬다.
4장, ‘데이터 저장과 사용’: 데이터에 관련된 모든 내용을 살펴본다. MySQL 데이터베이스가 아닌 그 밖의 데이터 소스를 사용하는 방법도 포함한다.
5장, ‘URL과 API를 위한 컨트롤러와 라우트 사용’: 라라벨에서 하는 다양한 라우팅 방법과 API를 만드는 기초적인 방법을 소개한다.
6장, ‘뷰 출력’: 라라벨에서 뷰가 어떻게 동작하는지를 살펴본다. 트윅(Twig) 템플릿 시스템과 트위터 부트스트랩 사용법 등을 설명한다.
7장, ‘콤포저 패키지 생성과 사용’: 애플리케이션에서 패키지 사용법과 커스텀 패키지 생성법 등을 설명한다.
8장, ‘Ajax와 jQuery 사용’: 라라벨에서 제이쿼리를 사용하는 방법과 비동기 호출 방법에 대한 다양한 예제를 제시한다.
9장, ‘보안과 세션의 효율적 사용’: 애플리케이션 보안 관련 주제와 세션 및 쿠키 사용법을 다룬다.
10장, ‘애플리케이션 테스트와 디버깅’: PHPUnit과 코디셉션(Codeception)을 이용한 애플리케이션 테스트 방법을 다룬다.
11장, ‘애플리케이션에서 외부 서비스 활용’: 다양한 외부 서비스들을 소개하고 애플리케이션에서 활용하는 방법을 알아 본다.
목차
목차
- 1장 라라벨 설정과 설치
- git 서브 모듈로 라라벨 설치
- 아파치에서 하는 가상 호스트 설정과 개발환경 설정
- 클린 URL 만들기
- 라라벨 설정
- 라라벨을 서브라임 텍스트 2로 사용
- IDE에서 라라벨 자동 완성 기능 설정
- 클래스 이름과 파일을 매핑하는 오토로더 사용
- 네임스페이스와 디렉토리를 사용한 고급 오토로더 만들기
- 2장 폼 사용과 입력 값 수집
- 소개
- 간단한 폼 생성
- 폼 입력 값 수집 후 그 밖의 페이지에서 출력
- 사용자 입력 값 검증
- 파일 업로더 생성
- 업로드한 파일 검증
- 오류 메시지 변경
- 폼에 허니팟 삽입
- 리댁터를 사용한 이미지 업로드
- 제이크롭으로 이미지 자르기
- 자동완성 텍스트 입력 필드 생성
- 캡차 스타일 스팸방지기 만들기
- 3장 애플리케이션 인증
- 소개
- Auth 라이브러리 설치와 설정
- 인증 시스템 생성
- 로그인한 사용자의 정보를 가져와 변경
- 페이지 접근 제한
- HybridAuth 패키지로 OAuth 설정
- OpenID로 로그인
- 페이스북으로 로그인
- 트위터로 로그인
- 링크드인으로 로그인
- 4장 데이터 저장과 사용
- 소개
- 마이그레이션과 스키마를 사용한 데이터 테이블 생성
- Raw SQL 문을 사용한 질의
- Fluent를 사용한 질의
- Eloquent ORM을 사용한 질의
- 모델 내에서 자동 인증 기능 사용
- Relationship을 이용한 고급 Eloquent 기능 사용
- CRUD 시스템 생성
- Eloquent를 사용해 CSV 자료 불러오기
- 데이터 소스로 RSS 사용
- 속성을 사용한 테이블 칼럼 이름 변경
- 라라벨에서 Eloquent 이외의 ORM 사용
- 5장 URL과 API를 위한 컨트롤러와 라우트 사용
- 소개
- 기본 컨트롤러 생성
- 클로저를 사용한 라우트 생성
- RESTful 컨트롤러 생성
- 고급 라우팅 사용
- 라우트 상에 필터 사용
- 라우트 그룹 사용
- 라우트로 RESTful API 만들기
- 네임드 라우트 사용
- 라우트 안에서 서브도메인 사용
- 6장 뷰 출력
- 소개
- 기본 뷰의 생성과 사용
- 데이터를 뷰로 전달
- 다른 뷰나 중첩 뷰 안에 뷰를 로딩
- 애셋 추가
- 블레이드 사용
- 트윅 템플릿 엔진 사용
- 고급 블레이드 사용법 활용
- 콘텐츠의 다국어 지원 210
- 라라벨에서 메뉴 만들기
- 부트스트랩 사용
- 네임드 뷰와 뷰 콤포저 사용
- 소개
- 7장 콤포저 패키지 생성과 사용
- 패키지를 내려받아 설치
- Generators 패키지 사용
- 라라벨에서 콤포저 패키지 생성
- Packagist에 콤포저 패키지 등록
- Packagist에 등록하지 않은 패키지를 콤포저에 추가
- 커스텀 artisan 명령 생성
- 소개
- 8장 에이잭스와 제이쿼리 사용
- 다른 페이지로부터 데이터 받기
- JSON 데이터를 반환하는 컨트롤러 설정
- 에이잭스 검색 함수 생성
- 에이잭스로 사용자를 생성하고 검증
- 체크박스로 데이터 필터링
- 에이잭스 뉴스레터 등록 박스 만들기
- 라라벨과 제이쿼리를 사용해 이메일 전송
- 제이쿼리와 라라벨을 사용해 정렬 가능한 테이블을 생성
- 소개
- 9장 보안과 세션의 효율적 사용
- 데이터 암호화와 복호화
- 패스워드와 데이터를 해시 처리
- 폼에서 CSRF 토큰과 필터를 사용
- 폼에서 커스텀 검증 기능을 사용
- 쇼핑 카트 구축
- 레디스를 이용한 세션 저장
- 세션과 쿠키 사용
- 안전한 API 서버 생성
- 소개
- 10장 애플리케이션 테스트와 디버깅
- PHPUnit 설치와 설정
- 테스트 케이스의 작성과 실행
- 컨트롤러 테스트를 위한 마커리 사용
- 코드셉션을 사용한 인수 테스트 작성
- 애플리케이션의 디버깅과 프로파일링
- 소개
- 11장 애플리케이션에서 외부 서비스 활용
- 큐 생성 후 Artisan을 이용해 실행
- 파고다박스 클라우드 호스팅 서비스 사용
- 스트라이프 PG 서비스 이용
- GeoIP 검색과 커스텀 라우팅 설정
- 메일침프 서비스를 이용해 이메일 발송
- 아마존 S3 서비스를 활용해 클라우드 콘텐츠 사용