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

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

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

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

Q&A

解決済

3回答

198閲覧

include/requireする関数群は細かく分けるべきなのか

imprezza

総合スコア61

PHP

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

0グッド

0クリップ

投稿2018/03/28 03:32

とてもとても初歩的な質問ですみません

前提
PHPでプログラムを書いていくと、共通化できる部分を関数にしていきます
開発を積み重ねていくと、関数化していく部分が増えていきます

おおまかに
・プロジェクト/プログラムを飛び越えて全体で利用する関数群を共通関数としてまとめる(API呼び出して利用する等)
・プロジェクト単位で共通化する関数群(DBのマスタ参照等)
・プログラム単位で以下省略
と、範囲が異なる関数群をファイル化してinclude(once)/require(once)するものと捉えています

疑問
include(once)/require(once)するファイルが増えていけば
「あの関数を使うにはどのファイルをincludeするんだっけ…」となります

かと言って前提レベルの大きなくくりでファイルをまとめれば使わない関数が9割となってソースが無駄に肥大化していきます

質問
関数のファイル化、どこまで分けるのが良いか落としどころってみなさんどうしてますか?

・関数群を系統(ファイル操作系、ダイアログ利用系/マスタ参照全般、テーブル毎に操作)で分ける程度で可読性重視で
・いやもっと分けないと処理速度に影響が出る
・使わない関数は実行時に最適化してそぎ落とすから気にしなくていい

検索の仕方が漠然としすぎているのか上手く見つけられなかったので、もしこの辺の説明をしている情報&書籍を紹介していただいても助かります

よろしくお願いします

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

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

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

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

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

guest

回答3

0

Composer使わないのでしょうか?
機能毎にclassやtraitにまとめてしまえば読み込みに悩む必要もなくなるかと思いますが。

投稿2018/03/28 03:48

yoorwm

総合スコア1305

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

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

imprezza

2018/03/28 04:19

回答ありがとうございます。 composer、機能組み込みの際に使用しています…が、apt-get install と同列のパッケージインストール手段としか考えていませんでした。 autoloadの読込クラスを登録できるという事ですよね。サーバーの再構築(現在テストサーバで構築手順確認中)の際に枯れた機能を登録できるよう手順は確認します。
guest

0

ベストアンサー

基本的にはよく使う機能はcommonにまとめ
あとは機能(プロジェクト?)単位でクラス化し、
1クラス1ファイルで管理しておけばよいのでは?
(もちろん複数クラスをまとめても構わない)
他のクラスに依存する場合は必要に応じて別のファイル(クラス)を
相互に呼び出しあうようにし、require_once、include_onceで
二重読み込みを避けて運用すればよいでしょう

投稿2018/03/28 03:45

yambejp

総合スコア114572

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

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

imprezza

2018/03/28 04:33

回答ありがとうございます。 まず第一段階として関数のクラス化、それの機能切り分けが足掛かりになるんですね。 元がvba(access、手続き型)の関数-モジュール-mdbファイルの塊で考える癖があるため、関数-ファイル??そのくくりは??? と脳内で図が描けなくなっていました。
guest

0

フレームワークとcomposerの時代なのでこういうことはもう全く考えない…。
requireを自分で書くことがない。

投稿2018/03/28 05:10

kawax

総合スコア10377

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

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

imprezza

2018/03/28 07:28

回答ありがとうございます。 時代…そうですか… まぁ、PHPの情報収集してもタイムスタンプがえらく古くて、「自分の通っている道はこんなに前に誰かが完成させているものなのか」と感じる部分が多々あります。 車輪の再開発をしているだけなのかもしれませんね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問