SEブログ

【Laravel】フレームワーク入門者がLaravelを始めてみる

この記事は、Laravel 入門者向けの ひとこと掲示板シリーズの記事になります。

 

【Laravel】入門者向けとしてのまとめ

 

 

 

いきなりですが、Laravel という PHP のフレームワークってご存知でしょうか。

 

 

私はこのブログや、ちょっとした仕事で PHP を使っているんですが、フレームワークは去年、CakePHP を学習していました。

結局のところ挫折してしまい、今は全くフレームワークについて学習はしていませんが、Laravel は学習しやすいという事を聞きまして、考えてみた結果、まずは試してみる事にしました。

 

 

ちなみに私のプログラミングレベルですがこんな感じです。

そのうち今まで作ってきたポートフォリオをブログに載せてみようかなと思っています。(ただの自己満足の為ですがw)

 

 

 

・CodeCamp で PHP を勉強していました。約半年かけてコースを何とか完了できました。

・CodeCamp で学習完了後、個人的に先生と契約させていただきまして、週 1 ~ 2 回ほど PHP についてコーチングしてもらっています。ですが、あまり勉強せずに 1 年経過しました。汗

 ですが、お陰様でオブジェクト指向が少し理解でき、またポートフォリオのようなものを沢山作る事ができました。

・素の PHP で、認証周りの実装や、簡易的なユーザー登録サイトのような、フロントから DB に書き込んで表示して管理もするようなシステムであれば苦労はせずに作れます。

 (細かいものであれば他にも色々作ってきましたがレベル感的にはこんな感じです。。)

  ・CakePHP をセミナーや先生に教えてもらいましたが、本業が忙しくなかなか前に進まずに途中で断念してしまいました。汗;

・請負で小規模の Web 開発を経験した事があります。

・本業は Web 開発とは全く関係ない、IT インフラ関係です。( 主に Windows サーバー )

  ・CodeCamp を始める前までは 人様が作った PowerShell を分からないなりに少しだけいじった事はありますが、ほとんど基本のスキルは 0 でした。

 

 

 

と、長くなりましたが、こんな感じになります。(PowerShell はプログラミングかと言われるとモゴモゴしちゃいますけどとりあえず書きました。w)

また CakePHP リベンジではなく Laravel を試してみようかなというのは理由がありまして、以下の理由になります。

 

 

 

・短期間でフレームワークを使ったポートフォリオを作ってみたい。

・ポートフォリオを作るにあたり、CakePHP はまずは全体を理解してからではないと難しいが、Laravel のほうが部分的に理解できていればなんとかなると思う。

・日本国内で Laravel についての情報がここ最近だいぶ増えてきている。

・システム開発の需要が増えてきている。

 

 

 

と、こんな感じで Laravel を使ってみようと心に決めたわけです。という事で Laravel を早速使ってみます。また、環境は Cloud9 を使います。

 

 

 

スポンサーリンク

Laravel とは何か

 

 

MVC アーキテクチャの PHP のフレームワークになります。

 

 

MVC の意味

 

 

M: Model(モデル)といって、データベースとやりとりします。クラスになります。

V: View(ビュー)といって、HTML とやりとりします。ブラウザに表示されるのは必ず View で処理されます。

C: Controller(コントローラー)といって、Model と View の仲介役をします。

 

 

例えば、ユーザー登録の画面で View から入力した名前や会社名を、Controller が受け取り、その情報を Model にデータベースに入れてねという感じで処理をお願いするイメージです。逆に、登録されているユーザーを表示したい時には、Controller が Model にユーザーの情報をちょうだいといって、もらった情報をブラウザに表示させるために View に渡す感じです。

 

 

それでは環境を準備してゆきましょう。

 

 

 

スポンサーリンク

環境準備

 

 

Cloud 9 でワークスペース作成

 

 

手順

 

1. Cloud 9 にログインして、以下のように Workspace(ワークスペース)を作ります。

 

 

 

2. Workspace name にワークスペース名(作るアプリ名など)を入力します。

 

Choose a template(テンプレート)は PHP, Apache $… をクリックします。

[Create workspace] ボタンをクリックします。

 

 

 

これでひとまずワークスペースが作れました。

 

 

php 7.0 のインストール

 

 

手順

 

php 7.0 をインストールします。以下の shell のところにこれ以降にでてくるコマンドをコピー & ペーストするか、直接入力します。

 

 

 

1. まずはリポジトリを登録します。

 

user:~/workspace $ sudo add-apt-repository ppa:ondrej/php
...
CAVEATS:
1. If you are using php-gearman, you need to add ppa:ondrej/pkg-gearman
2. If you are using apache2, you are advised to add ppa:ondrej/apache2
3. If you are using nginx, you are advise to add ppa:ondrej/nginx-mainline
or ppa:ondrej/nginx
PLEASE READ: If you like my work and want to give me a little motivation, please consider donating regularly: https://donate.sury.org/

WARNING: add-apt-repository is broken with non-UTF-8 locales, see 
https://github.com/oerdnj/deb.sury.org/issues/56 for workaround:

# LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
More info: https://launchpad.net/~ondrej/+archive/ubuntu/php
Press [ENTER] to continue or ctrl-c to cancel adding it ← Enter
...
gpg: keyring `/tmp/tmp38ou2vbg/secring.gpg' created
gpg: keyring `/tmp/tmp38ou2vbg/pubring.gpg' created
gpg: requesting key E5267A6C from hkp server keyserver.ubuntu.com
gpg: /tmp/tmp38ou2vbg/trustdb.gpg: trustdb created
gpg: key E5267A6C: public key "Launchpad PPA for Ondřej Surý" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
OK

 

 

 

2. sudo apt-get update を実行します。

 

user:~/workspace $ sudo apt-get update
Ign http://downloads-distro.mongodb.org dist InRelease
Get:1 http://security.ubuntu.com trusty-security InRelease [65.9 kB] 
...
Get:52 http://asia-east1.gce.clouds.archive.ubuntu.com trusty/universe i386 Packages [7597 kB]
Get:53 http://asia-east1.gce.clouds.archive.ubuntu.com trusty/multiverse i386 Packages [172 kB]
Fetched 36.4 MB in 20s (1773 kB/s) 
Reading package lists... Done

 

 

 

3. Cloud 9 の Linux ディストリビューションは debian 系なので、apache のモジュールとして、php 7.0 をインストールします。

 

user:~/workspace $ sudo apt-get install libapache2-mod-php7.0
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following extra packages will be installed:
libpcre16-3 libpcre3 libpcre3-dev libpcre32-3 libpcrecpp0 libssl1.1
php-common php7.0-cli php7.0-common php7.0-json php7.0-opcache
php7.0-readline
The following NEW packages will be installed:
libapache2-mod-php7.0 libpcre16-3 libpcre32-3 libssl1.1 php-common
php7.0-cli php7.0-common php7.0-json php7.0-opcache php7.0-readline
The following packages will be upgraded:
libpcre3 libpcre3-dev libpcrecpp0
3 upgraded, 10 newly installed, 0 to remove and 232 not upgraded.
Need to get 5864 kB of archives.
After this operation, 19.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y を入力して Enter
...
Creating config file /etc/php/7.0/cli/php.ini with new version
Setting up libapache2-mod-php7.0 (7.0.30-1+ubuntu14.04.1+deb.sury.org+1) ...

Creating config file /etc/php/7.0/apache2/php.ini with new version
libapache2-mod-php7.0: php5 module already enabled, not enabling PHP 7.0
Processing triggers for libc-bin (2.19-0ubuntu6.11) ...

 

 

 

4. php 5 のモジュールを無効にします。

 

user:~/workspace $ sudo a2dismod php5
Module php5 disabled.
To activate the new configuration, you need to run:
Service apache2 restart

 

 

 

5. php 7 のモジュールを有効にします。

 

user:~/workspace $ sudo a2enmod php7.0
Considering dependency mpm_prefork for php7.0:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php7.0:
Enabling module php7.0.
To activate the new configuration, you need to run:
service apache2 restart

 

 

 

6. php 用のモジュールをインストールします。ここでは、mysql とsqllite 両方をインストールしています。

 

user:~/workspace $ sudo apt-get install php7.0-dom php7.0-mbstring php7.0-zip php7.0-mysql php7.0-sqlite

Reading package lists... Done
Building dependency tree 
Reading state information... Done
Note, selecting 'php7.0-xml' instead of 'php7.0-dom'
Note, selecting 'php7.0-sqlite3' for regex 'php7.0-sqlite'
The following extra packages will be installed:
libzip5
The following NEW packages will be installed:
libzip5 php7.0-mbstring php7.0-mysql php7.0-sqlite3 php7.0-xml php7.0-zip
0 upgraded, 6 newly installed, 0 to remove and 232 not upgraded.
Need to get 796 kB of archives.
After this operation, 3041 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y を入力して Enter
...
Creating config file /etc/php/7.0/mods-available/xsl.ini with new version
Setting up php7.0-zip (7.0.30-1+ubuntu14.04.1+deb.sury.org+1) ...

Creating config file /etc/php/7.0/mods-available/zip.ini with new version
Processing triggers for libc-bin (2.19-0ubuntu6.11) ...
Processing triggers for libapache2-mod-php7.0 (7.0.30-1+ubuntu14.04.1+deb.sury.org+1) ...

 

 

 

7. php のインストールが完了しましたので、php のバージョンを確認します。

 

user:~/workspace $ php -v

PHP 7.0.30-1+ubuntu14.04.1+deb.sury.org+1 (cli) (built: May 2 2018 13:00:43) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.30-1+ubuntu14.04.1+deb.sury.org+1, Copyright (c) 1999-2017, by Zend Technologies

 

 

 

とりあえず php 7.0(モジュール含む)のインストールと有効化は完了しました。

 

 

 

Laravel のインストール

 

 

次に、Laravel のインストールに進みます。

Laravel は Composer を使ってインストールします。Composer は Cloud 9 にデフォルトでインストールされていますのでそのまま使う事ができます。

( Cloud 9 は素晴らしいですね!)

 

 

1. Composer で Laravel をインストールします。

 

user:~/workspace $ composer global require 'laravel/installer'

Changed current directory to /home/ubuntu/.composer
Using version ^2.0 for laravel/installer
./composer.json has been created
...
symfony/console suggests installing symfony/event-dispatcher ()
symfony/console suggests installing symfony/lock ()
symfony/console suggests installing psr/log-implementation (For using the console logger)
Writing lock file
Generating autoload files

 

 

 

2. プロジェクトを作ります。下の bbs というのは、作成したいアプリ名になります。

私の場合は、まずは簡易掲示板アプリを作りたいので、bbs と入力しました。

 

また、沢山のライブラリーをインストールするので、これは完了までに時間がかかります。

(以前に比べて Laravel が使うライブラリーは多くなったようです。)

 

–prefer-dist というは開発の為に使用され、gitのようなソースコードリポジトリからダウンロードされます。
dist というのは、パッケージデータをパッケージ化されたバージョンです。リリース版や、安定版になります。

 

composer create-project laravel/laravel bbs 5.5.* --prefer-dist

Changed current directory to /home/ubuntu/.composer
Using version ^2.0 for laravel/installer
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 12 installs, 0 updates, 0 removals
- Installing symfony/process (v3.4.11): Downloading (100%) 
...

 

 

 

これで Laravel のインストールは完了です。

 

 

動作確認

 

 

ここでは、サーバーを起動して、Web ブラウザから Laravel のサイトが表示できるか確認します。

 

手順

 

1. 作成されたプロジェクトのディレクトリに移動して、artisan でサーバーを起動します。

その後に、http://0.0.0.0:8080をクリックします。

 

user:~/workspace $ cd bbs

user:~/workspace/bbs $ php artisan serve --host=$IP --port=$PORT
Laravel development server started: <http://0.0.0.0:8080>

 

 

 

以下のように、http://0.0.0.0:8080 をクリックして、[Open] をクリックします。

 

 

2. [Open the App] ボタンをクリックします。

 

 

 

3. ブラウザ上で、Laravel が表示されました。

 

 

 

 

いかがでしょうか。これでまずは Laravel の動作は確認できました。

次に web routes にroute を登録し、view を作り、上で表示した Laravel 以外のサイトを表示できるようにします。

 

 

 

では最後までお読みいただきありがとうございました!

 

 

おすすめの本はこちら ↓↓↓