質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

2446閲覧

PHPでWebサービスを作るなら、フレームワークを利用した方がいいですか?

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1グッド

3クリップ

投稿2016/08/25 11:20

編集2016/08/25 11:26

私の理解が乏しく、漠然とした質問なのかもしれませんが、アドバイスいただけると嬉しいです。

現在、Qiitaのようにユーザー登録して、それぞれが投稿して、ストックできるようなWebサービスを作りたいと思い、勉強しております。

静的なWebページを作ったことはありますが、Webサービスを作ったことはありません。

作れるようになるために、下記について調べて理解しました。

  • HTTPの仕組み(メッセージの内容など)
  • Cookieとセッションの仕組み
  • HTML / CSS
  • PHP(基本構文、関数の使い方、クラス・例外処理の基礎、PDOを使ったDB接続・操作)
  • MySQLの基礎
  • 脆弱性(XSS、CSRF、セッションハイジャック・フィクセーション)の概要
  • セキュリティ対策(徳丸本で勉強中です)
  • デザイン関連(Photoshp・Illustrator)

今の段階では、書籍やネットなどを参考すれば、ユーザー登録、投稿、ストックという機能だけ(動くだけ)なら作れるレベルですが、セキュリティなど作り方に問題ないか不安です。

作りたいWebサービスに近づくためには、次に何を勉強した方がよいか調べていたら、下記のように初心者にはフレームワークを推奨する記事がありました。

私のような初心者が先述したようなWebサービスを作りたいなら、フレームワークを利用した方がよろしいでしょうか?
また、利用した方がよい場合は、お勧めのフレームワークはありますでしょうか?

それとも、フレームワークなどは利用せずにPHPをもっと理解して、素のPHPでガシガシ作っていく方がよいのでしょうか?

次のステップとして、どのようなことを勉強すればよいか悩んでおります。

近くに詳しい方もいないので、皆様から見て次にどのようなことを勉強した方がよいか、アドバイスいただけると助かりますm(__)m

KiyoshiMotoki👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

この手の質問はどんな意見が出るかいつも興味深いですね。
恐らく色々な見解が出るかと思いますが、個人的な意見で言うと、**「使ったほうがいい」**と思います。

フレームワークは基本的なセキュリティ対策(XSSやCSRF等)が想定されて設計されています。
ググった結果などをコピペで作っていくよりは確実に安全なものが作れると思います。

ただ、PHPやMySQLの勉強とは別にフレームワークを覚えるための学習コストがかかります。
インストールで躓く方も結構いて、teratailや質問サイトでも動かせないみたいな質問が度々出ています。

フレームワークなどは利用せずにPHPをもっと理解して、素のPHPでガシガシ作っていく

本当はここから初めて欲しいし、そこからフレームワークの世界を知った時の感動を味わってもらいたいという思いもありますが・・・
ただ、実はフレームワークを使いながらでもPHPはガシガシ書くことになりますので、フレームワークを勉強するポイントが変わるだけで、総合的な学習コストは変わらないんじゃないかなぁと思ったり・・・

ちなみに、フレームワークの選定については**「自分の手に馴染むものであれば何でもいい」**と思っています。
たとえ「堅牢さがウリだ」とか「爆速フレームワーク!」というようなウリ文句があっても、自分がまともに扱えていなければその恩恵に与ることができないからです。
FuelPHP、CakePHP、CodeIgniter、Laravelなどなど有名どころを抑えておけば情報に困ることはないですし、この「フレームワークじゃ出来ない」というようなことはまずありません。

なお

次のステップとして、どのようなことを勉強すればよいか悩んでおります。

こちらの回答としては**「とにかく興味の向いている方向から作り始めてみる」**といいと思います。
最適解で悩んでいるよりもトライ&エラーを重ねていく方が最終的には一番の近道になります。

長々書いてしまった上に読みにくくてすみません・・・

投稿2016/08/25 12:33

bananacoffee

総合スコア260

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/08/25 13:39

非常に参考になる回答ありがとうございますm(__)m 今までも、「データベース使いたい→PDOについて調べる」「セキュリティについて理解したい→Cookie・セッションについて調べる」ということを繰り返してやってきたにもかかわらず、ここにきて、突出して興味あるところがなくなり、最適解や学習コストを求めてしまいました。 また、PHPが先か、フレームワークが先かについても、鶏が先か、卵が先かという話で、最終的には低レイヤーレベルで理解する必要があるという不変的なことも見失っていたと思います。 PHPにしても、フレームワークにしても、興味あるとこから順にやっていこうと思います^^ 回答ありがとうございましたm(__)m
bananacoffee

2016/08/26 01:55

ベストアンサーありがとうございます。 順序立てて勉強していくのが得意なんですね。ちょっと羨ましい・・・ ちなみに、私もte2jiさんと同じくCodeIgniterをメインに使っています。 他のFWよりもマニュアルが読みやすかったことと、PHPの手軽(というか雑)な部分をそのまま生かしているような部分が気に入ったのですが、よりFW的と言うか、MVCという考え方をしっかり学びたいということであれば、他の3つの方がFWらしい使い方はできるかと思います。 とりあえず上に挙げたFWをひととおり動かして2,3ページくらい作ってみるといいかもしれません。 Composerの練習にもなりますし、チュートリアルも充実していますよ。
退会済みユーザー

退会済みユーザー

2016/08/26 04:20

bananacoffee さんもCodeIgniterを使ってるとのことで、ますますCodeIgniterについて興味がでてきました^^ アドバイスの通り、いくつかFWを試してみます。 また、Composerというのもよく目にしますが、使ったことはないので、これを機に試してみます^^ お忙しい中、何度もアドバイスありがとうございますm(__)m
guest

0

フレームワークはよく使う処理を体系だって整理し、その処理を間違いが少なく実装できるように工夫さてたものです。ですので、Webサービスを作りたいなら、先人の知恵が詰まったフレームワークを利用した方が良いと思います。特にセキュリティ的に考慮が必要となる、Web系の入力系やDB処理に関しては、ケアレスミスをしない様にする実装が簡単にできるよう工夫されています。

ただ、フレームワークを使用するにあたって、中身を確認したくなることは度々あるので、素の
PHPもそれなりに理解できるスキルが必要です。
正直、私も学習中の身なので、フレームワークの中身を理解するのはかなりハードルが高いです。
まず、適当なサイズのWebサービスを自身で作成できるようになってからフレームワークを使用するのがオススメです。お作法が、フレームワークごとに違うので、手に馴染むものを使用するのが良さそうですね。私は、お手軽(?)な CodeIgniter を使用しています。

ちなみにですが、この回答はあなたが一人親方である前提です。どこかの組織に属するのであれば、問答無用でその組織の【仕様】を守る必要がありますので^^;

投稿2016/08/25 13:09

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/08/25 13:46 編集

フレームワークについての知識が乏しいため、非常に参考になります^^ セキュリティに関しても、やはりフレームワークを利用した方が、初心者が実装するよりも堅牢なものが作れるんですね。 また、フレームワークを使うにしろ、最終的にはPHPレベルでの理解は必要になってくるということなんですね。 コメントにある CodeIgniter についても調べてみたいと思います。 個人的なもので仕様はないので、興味があるフレームを使ってみたいと思います。 回答ありがとうございましたm(__)m
退会済みユーザー

退会済みユーザー

2016/08/25 14:10 編集

> セキュリティに関しても、やはりフレームワークを利用した方が、初心者が実装するよりも堅牢なものが作れるんですね。 これは間違いです。フレームワークで実装できるのは、ケアレスミスを防ぎ、手順を最小化/ルーチン化する機能なので、セキュリティに関して初心者が実装するより堅牢なものが作れるわけではないです。 きちんと何を守る機能かを理解し、実装しないとセキュリティ的な穴を開けてしまう事態もありえます。 そのためにも中身が読めるスキルが必要になります。まぁ、中身でなくドキュメントでもイイですけど。
退会済みユーザー

退会済みユーザー

2016/08/25 14:28 編集

なるほど、フレームワークを使えば堅牢なものが作れるのかと思ってましたが、単純化しているだけで、何をしているか、きちんと理解しておく必要があるんですね。 フレームワーク使うときは、ドキュメントも確認します。 ありがとうございます^^
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問