php入門
TRANSCRIPT
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') === 'aa96f26c2b67226a324c27919f1eb05f21c248b987e6195cad9690d5c1ff713d53020a02ac8c217dbf90a7eacc9d141d') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"php composer-setup.phpphp -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=mysqlDB_HOST=localhostDB_PORT=3306DB_DATABASE=phpdbDB_USERNAME=rootDB_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
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癖あるけど
愛着湧いてディスる気なくなった