php入門

68
PHP 入入 入入入入 PHP 入入入入入入入入入入入入入入入

Upload: dcubeio

Post on 16-Apr-2017

150 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Php入門

PHP 入門〜最近の PHP 凄いって聞いたから触ってみた〜

Page 2: Php入門

自己紹介

名前:池畑勇輝

出身地:石川県

できること: web アプリ開発、 ruby(rails),java( 色々)

趣味:水樹奈々 あとアニメとか、ゲームとか

Page 3: Php入門

触るきっかけ

まわりで php に対する噂を聞く

Page 4: Php入門

php 噂その1

俺「最近なにやってるの?」

後輩「 php 触ってます」

俺「 php (笑)」

後輩「最近の php はオブジェクト思考も使えて便利ですよ」

Page 5: Php入門

php 噂その2

俺「どんな言語すきなの?」

新人「 php ですかね」

俺「 php (笑)」

新人「最近の php はフレームワークもちゃんとしてて楽ですよ」

Page 6: Php入門

どうやら。。。

私の知っている php とは違うらしい

1. オブジェクト志向ではない

2. ソースが異常にみずらい

3. ばぐりやすい。でぐれしやすい。

4.mvc モデルじゃない、必然的 fut action

Page 7: Php入門

触ってみよう!

面白そうだし触ってみる

勉強して phper をディスってやる

Page 8: Php入門

php インストールしてみた

windows

公式(http://php.net/downloads.php)から

落としてきて実行。パスを通して完了!

Page 9: Php入門
Page 10: Php入門

php インストールしてみた

mac

brew install php7( 最新)

brew install php56 (一個前)

Page 11: Php入門

はい!ここで問題!

Q. たかし君はおうちのパソコンに brew install php7

でインストールをしました。

かくにん の ため php -v を じっこう した ところ

php5.5 と でました。なぜでしょう。

Page 12: Php入門

答え

mac はデフォルトで php がはいっているため

Page 13: Php入門

じゃあ。。

本体の php アップデートすればいいじゃん!!

→ 実行ファイルは見つかったものの、 ini ファイルや諸々の

ディレクトリが見つからなかった。正直ごめんである

Page 14: Php入門

パスを書き換えて先に読み取ってもらう

.bash_profile 書き換えましょう

export PATH=/usr/local/Cellar/php56/5.6.27_4/bin:$PATH :

Page 15: Php入門

フレームワーク

php フレームワークでぐぐったところ

下記2フレームワークが2大巨頭らしい

1.cakephp

2.lalabel

Page 16: Php入門

cakephp 入れてみた

公式に則り進める

http://book.cakephp.org/3.0/ja/installation.html

Page 17: Php入門

composer っていう依存性管理ツール入れる

公式に下記を思考停止して入れろってかいてある

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"php -r "if (hash_file('SHA384', 'composer-setup.php') === 'aa96f26c2b67226a324c27919f1eb05f21c248b987e6195cad9690d5c1ff713d53020a02ac8c217dbf90a7eacc9d141d') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"php composer-setup.phpphp -r "unlink('composer-setup.php');"

Page 18: Php入門

新規プロジェクト作成

php composer.phar create-project --prefer-dist cakephp/app ほげほげ

Page 19: Php入門

起動

開発用サーバが内包されているので

apache,enginx なくても動く!

先ほど作成したディレクトリに移動して

bin/cake server

Page 20: Php入門

アクセスしてみる

localhost:8765

Page 21: Php入門
Page 22: Php入門

なんか動いた

やったぜ!

Page 23: Php入門

db アクセスしてみる

対応 DB

MySQL 5.1+

SQLite 3

PostgreSQL 8+

SQLServer 2008+

Oracle ( コミュニティプラグイン経由 )

Page 24: Php入門

db アクセスしてみる

app.php ファイルを書き換える

'Datasources' => [ 'default' => [

'className' => 'Cake\Database\Connection', 'driver' => 'Cake\Database\Driver\Mysql',     'persistent' => false,     'host' => '127.0.0.1',

'username' => 'root', 'password' => '', 'database' => 'phpdb',

Page 25: Php入門

db アクセスしてみる

テーブル作成CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, title VARCHAR(50), body TEXT, created DATETIME DEFAULT NULL, modified DATETIME DEFAULT NULL);

Page 26: Php入門

db アクセスしてみる

初期データ投入!INSERT INTO articles (title,body,created)VALUES (' タイトル ', ' これは、記事の本文です。 ', NOW());

INSERT INTO articles (title,body,created)  

VALUES (' またタイトル ', ' そこに本文が続きます。 ', NOW());

INSERT INTO articles (title,body,created)VALUES (' タイトルの逆襲 ', ' こりゃ本当にわくわくする!うそ。 ', NOW());

Page 27: Php入門

db アクセスしてみる

アプリケーション /bin のディレクトリで下記を実行

cake bake all articles;

Page 28: Php入門

ブログっぽいの完成

http://localhost:8765/articles

Page 29: Php入門

cakephp 所感

bake コマンドが強力

$ cake bake db_config$ cake bake model$ cake bake view$ cake bake controller$ cake bake project$ cake bake fixture$ cake bake test$ cake bake plugin plugin_name$ cake bake all

Page 30: Php入門

cakephp 所感

みんな大好き mvc モデル

php5 .6以上だから必然的にオブジェクト指向、型がある

template,helper があるので、 view が見易い触りやすい

自動生成されるコードを少しずついじればいいので

学習しやすい

Page 31: Php入門

cakephp 所感?

Q. たかしくんは cakephp を さわってみて

とても べんりだなぁ と おもいました

でもこれ XXX と たいさ なくない?

とおもいました xxx に はいる こうもく は なんでしょう?

Page 32: Php入門

cakephp 所感?

ruby on rails と機能がほぼほぼ一緒

言語による差で差別化

型があるのはでかい

Page 33: Php入門

larabel 入れてみた

公式に則りインストール

https://readouble.com/laravel/5.3/ja/installation.html

Page 34: Php入門

新規プロジェクト作成

comporser は php 開発する上で必須みたいである

下記コマンドを実行

composer create-project laravel/laravel larahoge --prefer-dist

Page 35: Php入門

新規プロジェクト作成

大量にログが流れる

10分ほど待つ

Page 36: Php入門

アクセスしてみる

こちらもパッケージされた server がある模様

php artisan serve

Page 37: Php入門

なんかでた!

localhost:8000

やったぜ!

Page 38: Php入門
Page 39: Php入門

DB アクセスしてみる

※良い子は DB流用とかしちゃダメ!

.env ファイルに下記を記述

DB_CONNECTION=mysqlDB_HOST=localhostDB_PORT=3306DB_DATABASE=phpdbDB_USERNAME=rootDB_PASSWORD=

Page 40: Php入門

モデルを作る

プロジェクトのディレクトリに移動して下記を叩く! php artisan make:model articles

Page 41: Php入門

実テーブルへの参照とカラムを指定する

protected $table = 'articles';protected $fillable = ['title', 'body'];

モデルを作る

Page 42: Php入門

コントローラつくる

php artisan make:controller articlesController

Page 43: Php入門

コントローラつくる

/app/Http/Controllersに articlesContolloler いるはずなので

index() メソッド追記

public function index(){ $articles = Article::all(); return view('articles.index')->with('articles',$articles);}

Page 44: Php入門

コントローラつくる

コンストラクタ書く

public function __construct(Article $article){ $this->article = $article;}

Page 45: Php入門

コントローラつくる

article モデルをデフォで使うって記述する

use App/article

Page 46: Php入門

コントローラのルートをつくる

/rutes/webapp.php

に下記を記述

Route::resource('article', 'articlesController');

Page 47: Php入門

ビューをつくる

app/resouses/views/

に aeticle フォルダ作成

Page 48: Php入門

ビューをつくる

article を foreach で表示して

あとはデフォルトのをコピペ

<table> @foreach($articles as $article) <tr> <td>{{{ $article->title }}}</td> <td>{{{ $article->body }}}</td> </tr> @endforeach </table>

Page 49: Php入門

できた!(できてない)

長いので edit list delete は省略!

Page 50: Php入門
Page 51: Php入門

larabel 所感

一から作るのでアプリケーションの仕組みを理解するのには良い

省略したけど migration の仕組みが固くて

多人数開発に向いていそう(できてない)

Page 52: Php入門

larabel 所感?

書く量おおすぎ!辛い!

できる人がフレームワークを作って

ある程度自動化すれば化けそうではある

一から作るので黒魔術的なものが作れそう

Page 53: Php入門

IDE に関して

下記三点に関して使ってみた

netbeans

phpstorm

eclipse

Page 54: Php入門

netbeans 入れてみた

https://netbeans.org/kb/docs/php/debugging_ja.html

から最新版を取得

Page 55: Php入門

netbeans 入れてみた

PHP CakePHP Framework を ツール>プラグインから入れておく

Page 56: Php入門

netbeans 入れてみた

画面はこんな感じです

Page 57: Php入門

net beans

メリット

軽い!

cakephp のプラグインがある

なんとなくわかるデザイン

Page 58: Php入門

net beans

デメリット

larabel のプラグインがない

補完がイマイチ

Page 59: Php入門

phpstorm

公式から https://www.jetbrains.com/phpstorm/

ダウンロード

Page 60: Php入門

phpstorm

Page 61: Php入門

phpstorm

全 OS版あります

Page 62: Php入門

phpstorm 日本語化

yuuna/IDEA_resources_jp · GitHub

から resources_jp.jar 落としてくる

/Applications/PhpStorm.app

右クリック、パッケージの内容を表示

contents/lib配下に配置

Page 63: Php入門

phpstorm

メリット

保管が結構きく( php,html)

後発だけあって色々機能がそろってる

バージョン管理、リファクタ機能

基本的に CUI設計なのでマウス使いたくない病の人おすすめ

Page 64: Php入門

phpstorm

デメリット

基本英語!英語アレルギーの人注意

一ヶ月越えると有料( 5000円ぐらい)

一ヶ月越えると有料( 5000円ぐらい)

Page 65: Php入門

exlipse

メリット

for php 入れたら mysql とか apache付いてきた

ググラビティ高い

Page 66: Php入門

exlipse

デメリット

ちょっともっさり

プラグインの入れ方が面倒

Page 67: Php入門

まとめ

php割と使える子

スタートアップでざっくり使いたいけど

ちょっと固めなプロジェクトとかに向いてそう

初心者は cakephp,exlipse,php56 の組み合わせがおすすめ

Page 68: Php入門

ご静聴ありがとうございました

php癖あるけど

愛着湧いてディスる気なくなった