PHP入門
〜最近のPHP凄いって聞いたから触ってみた〜
自己紹介
名前:池畑勇輝
出身地:石川県
できること:webアプリ開発、ruby(rails),java(色々)
趣味:水樹奈々 あとアニメとか、ゲームとか
触るきっかけ
まわりでphpに対する噂を聞く
php噂その1
俺「最近なにやってるの?」
後輩「php触ってます」
俺「php(笑)」
後輩「最近のphpはオブジェクト思考も使えて便利ですよ」
php噂その2
俺「どんな言語すきなの?」
新人「phpですかね」
俺「php(笑)」
新人「最近のphpはフレームワークもちゃんとしてて楽ですよ」
どうやら。。。
私の知っているphpとは違うらしい
1.オブジェクト志向ではない
2.ソースが異常にみずらい
3.ばぐりやすい。でぐれしやすい。
4.mvcモデルじゃない、必然的fut action
触ってみよう!
面白そうだし触ってみる
勉強してphperをディスってやる
phpインストールしてみた
windows
公式(http://php.net/downloads.php)から
落としてきて実行。パスを通して完了!
phpインストールしてみた
mac
brew install php7(最新)
brew install php56(一個前)
はい!ここで問題!
Q.たかし君はおうちのパソコンにbrew install php7
でインストールをしました。
かくにん の ため php -v を じっこう した ところ
php5.5 と でました。なぜでしょう。
答え
macはデフォルトでphpがはいっているため
じゃあ。。
本体のphpアップデートすればいいじゃん!!
→実行ファイルは見つかったものの、iniファイルや諸々の
ディレクトリが見つからなかった。正直ごめんである
パスを書き換えて先に読み取ってもらう
.bash_profile書き換えましょう
export PATH=/usr/local/Cellar/php56/5.6.27_4/bin:$PATH:
フレームワーク
php フレームワークでぐぐったところ
下記2フレームワークが2大巨頭らしい
1.cakephp
2.lalabel
cakephp入れてみた
公式に則り進める
http://book.cakephp.org/3.0/ja/installation.html
composerっていう依存性管理ツール入れる
公式に下記を思考停止して入れろってかいてある
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') ===
'aa96f26c2b67226a324c27919f1eb05f21c248b987e6195cad9690d5c1ff713d53020a02ac8c217dbf90a7e
acc9d141d') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); }
echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
新規プロジェクト作成
php composer.phar create-project --prefer-dist cakephp/app ほげほげ
起動
開発用サーバが内包されているので
apache,enginxなくても動く!
先ほど作成したディレクトリに移動して
bin/cake server
アクセスしてみる
localhost:8765
なんか動いた
やったぜ!
dbアクセスしてみる
対応DB
MySQL 5.1+
SQLite 3
PostgreSQL 8+
SQLServer 2008+
Oracle (コミュニティプラグイン経由)
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',
dbアクセスしてみる
テーブル作成
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50),
body TEXT,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL
);
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());
dbアクセスしてみる
アプリケーション/binのディレクトリで下記を実行
cake bake all articles;
ブログっぽいの完成
http://localhost:8765/articles
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
cakephp所感
みんな大好きmvcモデル
php5.6以上だから必然的にオブジェクト指向、型がある
template,helperがあるので、viewが見易い触りやすい
自動生成されるコードを少しずついじればいいので
学習しやすい
cakephp所感?
Q.たかしくんは cakephp を さわってみて
とても べんりだなぁ と おもいました
でもこれXXX と たいさ なくない?
とおもいました xxx に はいる こうもく は なんでしょう?
cakephp所感?
ruby on rails と機能がほぼほぼ一緒
言語による差で差別化
型があるのはでかい
larabel入れてみた
公式に則りインストール
https://readouble.com/laravel/5.3/ja/installation.html
新規プロジェクト作成
comporserはphp開発する上で必須みたいである
下記コマンドを実行
composer create-project laravel/laravel larahoge --prefer-dist
新規プロジェクト作成
大量にログが流れる
10分ほど待つ
アクセスしてみる
こちらもパッケージされたserverがある模様
php artisan serve
なんかでた!
localhost:8000
やったぜ!
DBアクセスしてみる
※良い子はDB流用とかしちゃダメ!
.envファイルに下記を記述
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=phpdb
DB_USERNAME=root
DB_PASSWORD=
モデルを作る
プロジェクトのディレクトリに移動して
下記を叩く!
php artisan make:model articles
実テーブルへの参照とカラムを指定する
protected $table = 'articles';
protected $fillable = ['title', 'body'];
モデルを作る
コントローラつくる
php artisan make:controller
articlesController
コントローラつくる
/app/Http/Controllers
に articlesContollolerいるはずなので
index()メソッド追記
public function index(){
$articles = Article::all();
return view('articles.index')->with('articles',$articles);
}
コントローラつくる
コンストラクタ書く
public function __construct(Article $article)
{
$this->article = $article;
}
コントローラつくる
articleモデルをデフォで使うって記述する
use App/article
コントローラのルートをつくる
/rutes/webapp.php
に下記を記述
Route::resource('article', 'articlesController');
ビューをつくる
app/resouses/views/
にaeticleフォルダ作成
ビューをつくる
article をforeachで表示して
あとはデフォルトのをコピペ
<table>
@foreach($articles as $article)
<tr>
<td>{{{ $article->title }}}</td>
<td>{{{ $article->body }}}</td>
</tr>
@endforeach
</table>
できた!(できてない)
長いのでedit list deleteは省略!
larabel所感
一から作るのでアプリケーションの仕組みを理解するのには良い
省略したけどmigrationの仕組みが固くて
多人数開発に向いていそう(できてない)
larabel所感?
書く量おおすぎ!辛い!
できる人がフレームワークを作って
ある程度自動化すれば化けそうではある
一から作るので黒魔術的なものが作れそう
IDEに関して
下記三点に関して使ってみた
netbeans
phpstorm
eclipse
netbeans 入れてみた
https://netbeans.org/kb/docs/php/debugging_ja.html
から最新版を取得
netbeans 入れてみた
PHP CakePHP Framework
を ツール>プラグインから入れておく
netbeans 入れてみた
画面はこんな感じです
net beans
メリット
軽い!
cakephpのプラグインがある
なんとなくわかるデザイン
net beans
デメリット
larabelのプラグインがない
補完がイマイチ
phpstorm
公式からhttps://www.jetbrains.com/phpstorm/
ダウンロード
phpstorm
phpstorm
全OS版あります
phpstorm 日本語化
yuuna/IDEA_resources_jp · GitHub
からresources_jp.jar落としてくる
/Applications/PhpStorm.app
右クリック、パッケージの内容を表示
contents/lib配下に配置
phpstorm
メリット
保管が結構きく(php,html)
後発だけあって色々機能がそろってる
バージョン管理、リファクタ機能
基本的にCUI設計なのでマウス使いたくない病の人おすすめ
phpstorm
デメリット
基本英語!英語アレルギーの人注意
一ヶ月越えると有料(5000円ぐらい)
一ヶ月越えると有料(5000円ぐらい)
exlipse
メリット
for php入れたらmysqlとかapache付いてきた
ググラビティ高い
exlipse
デメリット
ちょっともっさり
プラグインの入れ方が面倒
まとめ
php割と使える子
スタートアップでざっくり使いたいけど
ちょっと固めなプロジェクトとかに向いてそう
初心者はcakephp,exlipse,php56の組み合わせがおすすめ
ご静聴ありがとうございました
php癖あるけど
愛着湧いてディスる気なくなった

Php入門