タグ付けされた質問 「php」

PHPに関する質問。これは、Web開発に特に適した、広く使用されている汎用スクリプト言語です。

6
PHPとパフォーマンス
PHPは中規模および小規模のWebサイト用であるのに対し、.NETおよびJavaはエンタープライズアプリケーション用であるといつも聞きます。私の質問はPHPについてです。PHPがエンタープライズWebアプリケーションに適したオプションではないのはなぜですか?Webアプリケーションが大きくなると、インタープリター言語であるPHPが遅くなるからでしょうか? 企業の世界は、製品との統合やバックエンドサービスなどのために.NETまたはJ2EEを選択することを知っています。ただし、サイトやWebアプリケーションを構築するためのPHPがある場合、それを使用してどのように実行できますか大きなサイト? 要するに、PHPのパフォーマンスとWebサイトのサイズの間に関係はありますか?PHPが大規模サイトに適したオプションではない要因は何ですか?

7
SQLクエリビルダーを使用する利点は何ですか?
生のSQLを使用するのではなく、クエリビルダを使用する利点はありますか? 例えば $q->select('*') ->from('posts') ->innerJoin('terms', 'post_id') ->where(...) 対: SELECT * FROM posts WHERE ... 多くのフレームワークがこの種の抽象化レイヤーを使用していることがわかりますが、その利点を理解できません。
17 php  sql  frameworks 

3
PHPファイルの終了タグ(?>)?
PHPファイルを?>で閉じることを誓う人もいれば、それを残す方がより最適化されていると言う人もいます。 そこにそれを置くことは必須ではないことを知っています、私はこれを行うことの長所と短所が何であるか、そしてベストプラクティスは何であるか疑問に思っています。

5
なぜPHP関数のシグニチャーはそれほど矛盾していますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 私はいくつかのPHP関数を試していましたが、次のことに気づかずにはいられませんでした。 <?php function foo(&$var) { } foo($a); // $a is "created" and assigned to null $b = array(); foo($b['b']); var_dump(array_key_exists('b', $b)); // bool(true) $c = new StdClass; foo($c->d); var_dump(property_exists($c, 'd')); // bool(true) ?> array_key_exists()and property_exists()関数に注目してください。最初のものでは、プロパティ名(配列のキー)が最初のパラメーターであり、2番目のものでは2番目のパラメーターです。直観的には、彼らは同様の署名を持っていることを期待するでしょう。これは混乱を招く可能性があり、このタイプの修正を行うと開発時間が無駄になる可能性があります。 PHPやそのような言語は、関連する関数の署名の一貫性を考慮すべきではありませんか?
17 php  naming  functions 

10
コーディング標準に関するプロジェクトリーダーとの不一致[終了]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 閉じた3年前。 そのため、私は過去1年間、プロジェクトリーダーと共に新しいプロジェクトに取り組んでいます。 最初は、別のgitリポジトリにある独自のサブプロジェクトがありましたが、彼のコードとのやり取りはほとんどなかったので、コードのにおいは気にしませんでした。約6か月後、プロジェクトでより大きな役割を担っていたため、彼のコードの機能を維持および追加し始めました。 私は両方のサブプロジェクト(チームが成長しようとしています。彼はまだ私の上にいます)の主任開発者です。 中括弧、大文字の関数、二重引用符の使用法(二重および単一の隠しロジック付き)、===を使用しない、巨大な関数を持つ巨大なクラスはありません。一番下の行は、より良いかもしれません。 通知/警告をオフにするPHPのオプションへの依存。コードには、変数と配列キーの未使用の使用法がたくさんあります。変数はifの内部で定義されます。 上記の2つの問題に対する議論: 人々にコーディングスタイルを強制したくない。 より短い/より効率的なコードに適した言語機能とみなされます。 いくつかのルールが必要であり、コードは防御的である必要があると思います。PHPStormのデフォルト設定をフォーマットに使用し、中括弧とコミュニティで受け入れられている命名規則を使用することを申し出ました。 私は両方のプロジェクトを切り離せないので、同じガイドラインを使用するように調整したいと思います。 私は間違っていますか?個人的な好みを課しますか?

3
PHPとMySqlで金額を処理する方法は?
MySQLデータベースの上にPHPで記述されたレガシーコードの巨大な山を継承しました。私が気づいたのは、アプリケーションdoublesがデータの保存と操作に使用することです。 今、私doubleは丸め誤差のために金銭的操作に適していない方法について言及している多くの投稿に出会いました。しかし、PHPコードで金銭的な値を処理し、MySQLデータベースに保存する方法の完全なソリューションにまだ出会っていません。 PHPで具体的にお金を処理する場合のベストプラクティスはありますか? 私が探しているものは: データベースにどのようにデータを保存する必要がありますか?列タイプ?サイズ? データが通常の加算、減算でどのように処理されるべきか。乗算または除算? いつ値を丸めるべきですか?ある場合、どの程度の丸めが許容されますか? 大きな金額と低い金額の処理に違いはありますか? 注:日常生活で金銭的価値に遭遇する可能性 のある非常に単純化されたサンプルコード(単純化のためにさまざまなセキュリティ上の懸念は無視されました。もちろん、実際の生活ではこのようなコードは使用しません): $a= $_POST['price_in_dollars']; //-->(ex: 25.06) will be read as a string should it be cast to double? $b= $_POST['discount_rate'];//-->(ex: 0.35) value will always be less than 1 $valueToBeStored= $a * $b; //--> any hint here is welcomed $valueFromDatabase= $row['price']; //--> price …

7
データベース内のデータを暗号化する必要がありますか?
私にはクライアントがあり、そのために、患者のケア、患者の管理、相談、履歴、カレンダーなど、基本的にはすべてに関するWebアプリケーションを作成します。 問題は、これが機密データ、患者の履歴などであるということです。 クライアントはデータベースレベルでデータを暗号化することを主張しますが、これはWebアプリのパフォーマンスを低下させると思います。(しかし、私はこれについて心配するべきではありません) 私は健康問題に関するデータ保護に関する法律を読んだことがありますが(ポルトガル)、これについてあまり具体的ではありません(これについて質問したばかりで、彼らの応答を待っています)。 次のリンクを読みましたが、私の質問は異なります。データベース内のデータを暗号化すべきかどうか。 データの暗号化で予測される問題の1つは、キーが必要になることです。これはユーザーパスワードかもしれませんが、ユーザーパスワードがどのようになっているか(12345など)を知っており、保存する必要のあるキーを生成しますどこかで、これは、プログラマー、dba、それにアクセスできるものは何でも、これについての考えを意味しますか? ランダムソルトをユーザーパスワードに追加しても、私はいつでもアクセスでき、データを復号化できるため、問題は解決しません。
16 php  mysql  encryption 

2
PHPの違法:OOP設計の理由はありますか?
以下のインターフェースの継承はPHPでは違法ですが、実際にはかなり役に立つと思います。以下のデザインに実際のアンチパターンまたは文書化された問題がありますか?PHPは私を保護していますか? <?php /** * Marker interface */ interface IConfig {} /** * An api sdk tool */ interface IApi { public __construct(IConfig $cfg); } /** * Api configuration specific to http */ interface IHttpConfig extends IConfig { public getSomeNiceHttpSpecificFeature(); } /** * Illegal, but would be really nice to have. …

2
REST APIエラー応答モデルとエラーコードシステムを作成する最良の方法は何ですか?
私のREST実装は、次の構造を持つJSONでエラーを返します。 { "http_response":400, "dev_message":"There is a problem", "message_for_user":"Bad request", "some_internal_error_code":12345 } プロパティ(dev_message、message_for_user、some_internal_error_code)に必要な値を渡し、それらを返すことができる特別な応答モデルを作成することをお勧めします。コードでは、これは次のようになります。 $responseModel = new MyResponseModel(400,"Something is bad", etc...); このモデルはどのように見えるべきですか?メソッドを実装する必要があります。たとえば、テキスト情報のみを渡すsuccessResponse()で、コードはデフォルトで200になりますか?これにこだわっています。これは私の質問の最初の部分です。このモデルを実装する必要がありますか、これは良い練習ですか?今のところ、コードから直接配列を返すだけだからです。 2番目の部分は、エラーコードシステムについてです。エラーコードについては、ドキュメントで説明します。しかし、私が遭遇している問題はコードにあります。エラーコードを管理する最良の方法は何ですか?それらをモデル内に記述する必要がありますか?または、これを処理するための別のサービスを作成する方が良いでしょうか? 更新1 応答用のモデルクラスを実装しました。これはGregの答えと似ていますが、同じロジックですが、さらに、モデルに記述されたエラーをハードコーディングしました。ここでは、次のようになります。 class ErrorResponse { const SOME_ENTITY_NOT_FOUND = 100; protected $errorMessages = [100 => ["error_message" => "That entity doesn't exist!"]]; ...some code... } なぜこれをしたのですか?そして何のために? コードでは格好いいです: return new ErrorResponse(ErrorResponse::SOME_ENTITY_NOT_FOUND ); …
15 php  mvc  rest  api 

8
Web用のMVC以外のデザインパターンはありますか?
MVC以外にWebのデザインパターンはありますか? 次のようなデザインパターンがあることを知っています:Registry、Observer、Factory、ActiveRecord、...、MVCその他のデザインパターンとフォルダー構造のセット。 MVCは他のデザインパターンのセットであるようなデザインパターンはありますか? 編集:私のプログラミング言語はPHPです。

2
キャッチオールまたは基本例外クラスで例外を記録する方が賢明ですか?
私はかなり大きなWebアプリをリファクタリングしています。主な問題の1つは、一貫性のないエラー処理であり、私は賢明な戦略を考え出そうとしています。set_error_handlerを介して、基本的にErrorExceptionsの PHPエラーを変換するカスタムエラーハンドラーと、Exceptionから直接継承するカスタムベース例外クラスを作成しました。 実稼働環境では、set_exception_handlerを介して汎用の例外catch-allを使用しており、例外ログ*をミックスに追加しようとしています。私のジレンマは、基本例外クラスまたはキャッチオールで実際のロギングを行う場所です。 私はそれをキャッチオールに記録するいくつかの理由を考えました: 基本例外クラスの適切な子に変換する必要があるコードには、かなりの数の例外があります。それが起こるまで、すべての例外がログに記録されるわけではありません。 キャッチオールでそれを行う方が自然な感じがします。ベース例外クラスはそれ以上のことをすべきではありません。(それは単一の責任原則のことかもしれませんが、見当違いの感覚かもしれません) 基本例外クラスにログインする1つの理由: 現在、キャッチオールは本番環境でのみ使用されています。他の環境(開発、テスト)で導入するのは簡単ですが、エラーは環境ごとに処理が異なるため、本番環境では404/503エラーページに変換されるため、いくつかの調整が必要になります。 例外をログに記録する場所について、受け入れられるプラクティスはありますか? *ロギングには最初はテキストファイルへの書き込みが含まれますが、特定の種類の例外のメールを送信するように進化する場合があります。 @unholysamplerの答えに促されたいくつかの説明: 私は2 * 10 ^ 6のslocコードベースに直面しており、多くのサードパーティのものを制御できません。また、PHPの前日例外を制御するコードの一部もあります。また、最近のくだらないコードもいくつかあります。私たちは、思考をやめ、ハッキングされなければならなかった激しいプレッシャーから長期間回復しています。 すべての矛盾に対処し、適切なエラー処理アプローチを導入するために積極的にリファクタリングを行っていますが、それには時間がかかります。エラーが適切に処理されるようになるまで、どうすればいいのか興味があります。おそらく、ある時点で賢明な例外戦略について別の質問をするでしょう。 ロギングの背後にある主な動機は、本番環境で何か悪いことが起こったときに電話でメールを受け取ることです。データダンプが巨大になるかどうかは気にしません。データダンプが大きくなると、古いジョブを時々削除するcronジョブが必要になります。

4
FacebookがPHPのほかにC ++を使用したのはなぜですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 FacebookがPHPのほかにC ++を使用する必要がある主な理由は何ですか?多くのビジターでWebサイトを作成する場合、C ++も使用する必要がありますか?

7
ASP.NET Ajax、jQuery、およびJavaScriptについて混乱[非公開]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新する Software Engineering Stack Exchangeのトピックになるようにします。 6年前に閉鎖されました。 昨日、ASP.NET 4の本からASP.NET AjaxとjQueryの章をいくつか読んだところ、これらのフレームワークが非常に興味深いことがわかり、それらについてさらに学ぶことにしました。 今日、私はAjaxとJavaScriptのライブラリからいくつかの本を借りました。ASP.NET AjaxはAjaxとは異なり、jQueryは「新しい」JavaScriptのようです。 JavaScriptをスキップしてjQueryを直接学習できるということですか? 一方、私が借りた非ASP.NET Ajaxの本は、クライアント側のWebプログラミングにのみ適用されるようで、ASP.NET Ajaxから学んだものとは大きく異なります。私がASP.NET開発者であれば、クライアント側のAjaxではなくASP.NET Ajaxに固執すべきだと思いますか?PHPはどうですか?ASP.NET Ajaxに似た「PHP Ajax」はありますか? 他のツールを習得するのが面倒なわけではありませんが、適切なツールに集中したいだけです。

9
フレームワークを使用する必要があるのはいつですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 私はWebプログラミングの初心者であり、現時点ではPHPについて学んでいます。CakePHPなどのPHPフレームワークを使用する必要があるのはいつですか?これや他の同様のPHPフレームワークが私に提供するものは何ですか?そして、プロフェッショナルになるためにフレームワークを使用することは本当に重要ですか? そして、好きな機能を提供する独自のフレームワークを作成できますか?
15 php  frameworks 

5
プレーンなPHPを使用してテンプレートシステムを構築する方法は?
私はstackoverflowでこの質問を読んでいた: /programming/104516/calling-php-functions-within-heredoc-strings そして受け入れられた答えは、このような単純なPHPテンプレートを実行するように言っています: template.php: <html> <head> <title> <?= $ title?> </ title> </ head> <本体> <?= getContent()?> </ body> </ html> index.php: <?php $ title = 'デモタイトル'; 関数getContent(){ return '<p> Hello World!</ p>'; } include( 'template.php'); ?> 私には、template.phpが他のスクリプトで定義された変数に依存するという意味で、上記の構造はうまくありません。また、実行時にコードを実行するためにinclude()をinclude('template.php')使用しています(include()を使用して、すぐには実行されないクラスまたは関数を含めるのとは対照的です)。 テンプレートを関数内にラップするのがより良いアプローチだと思います: template.php: <?php 関数template($ title、$ content){ ob_start(); ?> <html> <head> <title> <?= …
15 php  templates 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.