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

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

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

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

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

Q&A

解決済

7回答

11796閲覧

PHPにおけるクラス図

earnest_gay

総合スコア615

PHP

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

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

0グッド

11クリップ

投稿2016/05/18 12:08

会社から、「オブジェクト指向で会員制のサイト制作」を課題に挙げられています。

私は今まで手続き型のソース記述しかしていなくて、オブジェクト指向な記述をしていなくて
オブジェクト指向がどういうものかはわかっているのですが
例えば、それをログイン処理のクラス図に当てはめて考えるとクラス図すら書けない状態です。

現在は
「次の実装に入る前にログイン処理のクラス図だけはまず書いてください」
と言われています。

クラス図も作ったことがなくてあってるかどうかもわからないクラス図を提出すると少し違うといわれています。
イメージ説明

とりあえず今やるべきことは、オブジェクト指向に基づいたログイン処理のクラス図作成なのですが、
何かアドバイス頂けると助かります。

色々調べているので、オブジェクト指向がどういうものかは分かっているのです。

オブジェクト指向について超わかりやすく解説してみた
Javaのオブジェクト指向をエヴァで例えると超わかりやすい
ドラゴンボールで学ぶオブジェクト指向 改

それをログイン処理に、どう当てはめればいいのかが分からないのです。

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

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

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

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

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

guest

回答7

0

クラス図の書き方については他の方が回答されているようなので、具体的な案を書いてみます。

作成された図は拝見しつつ想像してみましたが、これだけの処理なら恐らく4つ程クラスがあれば足りるのではないかと思います。私の思う4つのクラスは下記。

①ログインクラス
②DB処理クラス
③汎用関数クラス(ハッシュ化したパスワードを戻すとかはココ)
④定数用クラス(エラー用文字列などを保持)

後、気になった点を一つ。「メール」と表記されていますが「メール」とは通常メールファイルを指します。ここでは恐らく「メールアドレス」をIDのように使うという事だと思うので、「メールアドレス」と表記した方が良いのでは?と思います。

参考までに。

投稿2016/05/18 13:23

TakashiMiyagawa

総合スコア51

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

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

0

ベストアンサー

私は、まずログイン周りの機能を整理するため、短い文章で考えます。

「○○は、××する」というような文章で考えます。
私ならこのような感じでしょうか。
・ログイン機能は、バリデート・認証・セッション発行を行う。
・バリデート機能は、メアドやパスワードの文字種をチェックする。
・認証機能は、メアドとパスワードで認証する。
・セッション機能は、ユーザ情報からセッションを発行する。
・ユーザ情報リポジトリは、ユーザ情報を出し入れする。
・ユーザ情報には、メアドとパスワードのハッシュが含まれる。
・ログインフォームは、メアドとパスワードを受け付ける。
・ログインフォームは、ログイン機能でログインする。
・ログインフォームは、ログイン結果を表示する。

ここで「○○は、××する」の「○○」がインターフェースやクラスになります。
「××」が「○○」のメソッドになります。

クラス図は、これらクラスの静的な関係を表せばよいかと思います。
例えば、
・ログイン機能に、「バリデート・認証・セッション」が集約されている。
・ユーザ情報リポジトリに、ユーザ情報が複数ある。
・ユーザ情報には、メアドとパスワードのハッシュがある。
といったあたりでしょうか。

投稿2016/05/19 00:20

i50

総合スコア227

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

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

0

たぶん会社の人は、自身で考えてほしいという部分があると思いますので、ヒント程度に・・・

メソッドが一つまたは書けないことに疑問をもっていませんか?その疑問は正しくて、クラスは通常名詞でメソッドは動詞になります。(参考にされたクラス図を見てください。)

また、クラス同士は関係を持っています。”AがBを持つ”あるいは”AがBを呼び出す”のような関係です。方向性のない線で結ぶことは多くはありません。

とりあえずこの2点を意識して修正するともっとオブジェクト指向っぽくなるとおもいます。

投稿2016/05/18 14:09

iwamoto_takaaki

総合スコア2883

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

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

0

クラス図は一つの箱にクラス名とその属性(メンバ変数など)、その機能(メソッドなど)を記載します。

クラスが複数ある場合は、クラスの数だけ箱が必要です。

そしてそのクラス間の関係を線で繋いで表します。(継承や委譲など)

一度、これまでに会社で作成したクラス図を見せてもらったらどうでしょうか。

投稿2016/05/18 12:29

munyagu

総合スコア479

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

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

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

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

0

ログイン処理のクラス図

という表現がなんか違うかな~って気がする。
これって機能? をまとめたものですよね。
自分のイメージでは、もっと大まかに
データと処理を分離させる感じですかねえ。
ネットもいいですが、なんか書籍を買ってじっくり
勉強してからの方がいいかも。(まあ、そんなに
悠長な時間はないかもですが… ^_^;)

投稿2016/05/18 12:16

takasima20

総合スコア7458

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

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

0

クラス図は一つの「クラス」を一つの四角で表現します。提示された図では、メソッドとかが単独で四角で表現されているので少し違います。クラスとは構造体を拡張したような概念で、フィールドとメソッド(メンバ変数とメンバ関数)を含みます。

投稿2016/05/18 12:13

HogeAnimalLover

総合スコア4830

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問