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

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

3
PHP Webアプリのフローを把握できなくなったため、作業が難しくなっています
私は数年前からプログラミングを行ってきましたが、C#とJavaScriptに非常に慣れてきました。大規模なC#およびJavaScriptプロジェクトがいくつかありますが、問題なくナビゲートできます。私は最近、PHPの経験がなくても作業するためにPHPとAngularJSプロジェクトを開始しました。 物事のPHP側の流れを追跡するのが難しくなりつつあります(JavaScript側は大きくなりますが、簡単に処理できます)。私が始めたときに犯した主要な設計ミスは山積みになり始め、今後の設計に影響を与えています。新しいものを実装するには、ますます時間がかかります。 私は締め切りが厳しく、良い、乾いた、固い、コードを書くのがますます難しくなっています。コードのチャンクをコピー/貼り付けして、設計時間が長くなるにつれてその動作にわずかな変化を加えることがより魅力的になっています。また、コンテキスト切り替えを行う必要があるときはいつでもコードベースに戻るのに時間がかかります(あるプロジェクトからこのプロジェクトに戻る)。このプロジェクトに戻るときはいつでも恐怖を感じます。 これを解決するためにどのような手順を実行できますか?上司は開発者ではなく、開発やソフトウェアのライフサイクルに精通していないため、時間がかかる可能性があることも正当化する必要があります。そのため、説明は通常より難しい場合があります。

4
エラー抑制は悪い習慣ですか?
ここで私が確信していないコードについて質問したところ、誰かが「ところで、恐ろしいコード:エラー抑制記号(@)を多く使用しています」と答えました。 これが悪い習慣である理由はありますか?のようなもので: $db=@new mysqli($db_info) or die('Database error'); 、カスタムエラーメッセージのみを表示できます。エラーを抑制しないと、次の典型的なPHPメッセージが表示されます。 警告:mysqli :: mysqli():php_network_getaddresses:getaddrinfo failed:そのようなホストは不明です。中にいくつかの\ファイル\パス上のライン6 「データベースエラー」も同様です。 エラー抑制は常に悪いですか、もしそうなら、上記について具体的に何が悪いですか? 更新:私が使用している実際のコードは次のとおりです。 or error('Datatabase error', 'An error occurred with the database' . (($debug_mode) ? '<br />MySQL reported: <b>' . $db->error . '</b><br />Error occurred on line <b>' . __LINE__ . '</b> of <b>' . __FILE__ . '</b>' …

3
テスト中の開発者とは何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 私は最近、Test in Developerの職に就くために会社に入れたいリクルーターと話していました。彼は本質的に、新しいプログラミング手法を試したり、ソフトウェアのバグや改良点をテストしたり、標準的な期限を気にする必要がないような立場にしたようです。あなたの仕事で非常に創造的になります。 しかし、その説明は私にはまだあいまいでした。私は何年もの間Web開発者であり、ほとんどがPHPで働いています。それで、私は、コミュニティの他の人々がこれらのポジションが通常伴うものについてもっと知っているかどうか知りたかったです。 私はこれがこのフォーラムにふさわしい主題ではないかもしれないことを知っていますが、Stack Exchangeで見つけることができる最適なものでした。 。 私はそれをグーグルで試しましたが、そこには多くの情報がありません。では、テスト中の開発者とは正確には何ですか?

6
共同開発のための最も基本的でシンプルなプラットフォーム(PHPプロジェクト)とは何ですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、上のトピックソフトウェア工学スタックExchange用。 6年前に閉鎖されました。 codeigniterを使用して、平均的なPHPアプリケーションで4〜5人のプログラマーと協力する必要があります。私たちは1つの都市の5つの異なる場所にいて、すべてのプログラマーはあまり教育を受けていないので、ほとんどのバージョン管理システムを使用したことはないと思います。 このようなプロジェクトで共同作業するための、非常に簡単に入手できるプラットフォームをお勧めできますか?共有のDropboxフォルダーよりも少しだけ洗練されたものについて話しています。

6
PHPがWebサーバーで頻繁に使用されるのはなぜですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 W3Techsによると、私のWebサーバーはWebサーバーの76.9%と同様にPHPを使用しています。 http://w3techs.com/technologies/overview/programming_language/all 私がPHPを使用する理由は、Webサーバーで他の人がPHPを使用しているのを見ることから生まれた慣性です。PHPがWebサーバー上でユビキタスになる理由は何ですか? (この質問は次の質問に似ていますが、異なる方向に向かっていることに注意してください:なぜJavaは最新のWebアプリケーション開発に使用されないのですか?)

3
GitHubでのGitプロジェクトの依存関係
PHPフレームワークとフレームワークの上にCMSを作成しました。CMSはフレームワークに依存していますが、フレームワークはCMSファイル内の自己完結型フォルダーとして存在します。GitHubでそれらを個別のプロジェクトとして維持したいのですが、フレームワークを更新するたびにCMSプロジェクトを更新するのが面倒になりたくありません。理想的には、これらのファイルを物理的にコミットするのではなく、CMSに何らかの方法でフレームワークファイルをプルして事前定義のサブディレクトリに含めるようにしたいと思います。 これはGit / GitHubで可能ですか?もしそうなら、それを機能させるために何を知る必要がありますか?私は非常に基本的なレベルのGitを使用していることに留意してください。Eclipse用のGitプラグインを使用してリポジトリを作成し、コミットし、GitHubに接続できます。私は現在、プロジェクトでソロで作業しているので、これまでGitについてこれ以上学ぶ必要はありませんでしたが、将来的に他の人にGitを公開したいと思います。 また、依存関係のあるプロジェクトの理想的なワークフローは何でしょうか?そのテーマに関するヒントも大歓迎です。私の設定についてさらに情報が必要な場合は、コメントでお尋ねください。
14 php  git  github  dependencies 

4
モックオブジェクトはいつ使用する必要がありますか?
TDDについて多くのことを読みましたが、まだ疑問があります。たとえば、次のクラス図があります。 これは、TDDとモックオブジェクトについて学ぶための簡単な例です。 どのテストを最初に書くべきですか?製品、次にライン、最後に注文?その場合、ラインと製品を使用して注文をテストする必要がありますか、またはモックオブジェクトを使用する必要がありますか?モックオブジェクトはいつ使用する必要がありますか?XPおよびTDDでUMLを使用する必要がありますか? 私はまだこれらのものを得ていません。

7
PHPの利点は何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 誰もが、特定のプログラミング言語に偏見を持つ人々を知っています。特にPHPは、過去の問題やその他の問題(ルーズ型など)に悩まされているようで、プロのアプリケーションには使用すべきではない非深刻なプログラミング言語と呼ばれることがよくあります。 その特別な場合PHP:Webアプリケーション用に選択したプログラミング言語としてPHPを使用することをどのように主張しますか 利点は何ですか、ColdFusion、JavaなどよりもPHPの方が優れているのはどこですか?
14 php 

4
従来の手動テストを使用できるのにphpunitを使用する理由
Webアプリを作成するときは、ブラウザで作業をテストして、エラーが表示されるかどうかを確認し、修正します。私は複雑なアプリケーションを作成しましたが、この方法でのテストは簡単で高速です。私はyoutubeでphpunitに関する多くのビデオを見ましたが、その目的を見つけることができません。このライブラリが便利なのはなぜですか?cakephpやzendのようなphp framworksにはphpunitがもっとありますか?コアphpだけのフレームワークは使用しません。phpunitは私にとって便利ですか?はいの場合、どのように? xdebugもありますが、関連するかどうかはわかりません。

2
注入できないコードをテストする方法は?
そのため、システム全体で次のコードを使用しています。現在、ユニットテストを過去にさかのぼって記述しています(私の議論ではなかったよりも遅くなっています)が、これがどのようにテスト可能かはわかりませんか? public function validate($value, Constraint $constraint) { $searchEntity = EmailAlertToSearchAdapter::adapt($value); $queryBuilder = SearcherFactory::getSearchDirector($searchEntity->getKeywords()); $adapter = new SearchEntityToQueryAdapter($queryBuilder, $searchEntity); $query = $adapter->setupBuilder()->build(); $totalCount = $this->advertType->count($query); if ($totalCount >= self::MAXIMUM_MATCHING_ADS) { $this->context->addViolation( $constraint->message ); } } 概念的には、これはどの言語にも適用できるはずですが、私はPHPを使用しています。このコードは、オブジェクトに基づいてElasticSearchクエリオブジェクトを構築するだけで、Searchオブジェクトはオブジェクトから構築されEmailAlertます。これらSearchとEmailAlert'sは単なるPOPOです。 私の問題は、SearcherFactory(静的メソッドを使用する)をモックアウトする方法や、インスタンスSearchEntityToQueryAdapterからの結果を必要とするをモックアウトできないことです。メソッド内の結果から構築されたものを注入するにはどうすればよいですか?たぶん私が知らないいくつかのデザインパターンがありますか?SearcherFactory::getSearchDirector Search 助けてくれてありがとう!

2
16オクテオンを超えるNPathの複雑さは現実的ですか?または、ツールを壊しましたか?
PHPMD(http://phpmd.org/)を使用してPHPコードの大部分(1153行)を測定したところ、コードのNPathの複雑さは16244818757303403077832757824であることがわかりました。 それは私にとってクレイジーに大きな数字のように見え、おそらくPHPMDが何らかの形で壊れていることを示唆しています。人間によって書かれたコードの一部がこのような高いNPath複雑さを持つことさえ可能ですか?循環的複雑度は351です。 おそらく重要な2つの詳細- これはHTMLと混合した手続き型コードであり、PHPMDはオブジェクト指向コードのみを測定します。これを回避するために、単一の関数を使用してファイル全体をクラスにラップしました。これは、ファイルの使用方法を表しています。 このファイルは一連のネストされたswitchステートメントで構成されており、その中には多数のif..elseステートメントがあります。したがって、確かにかなり複雑です。 編集 PHPMDが私に嘘をついているかどうかを疑っていないことを明確にしたい。私は、コードがひどい混乱であることを知っています、私はただ、どんなコードでも本当にそんなに悪いことが可能かどうか疑問に思います。答えはイエスのようです、それは非常に可能です。
13 php  code-quality 

4
会社がパスワードを暗号化しない場合の対処方法
バックグラウンド 会社がサーバーを保守するのを手伝う契約をしています。私はいくつかのマイナーなPHPプロジェクトに取り組んでいますが、パフォーマンスの問題を調べ、最近ではハッカーのログをスキャンしています。 これらの人々はしばらくの間サーバーを実行しており、その最後の部分にレガシーアプリケーションと呼ぶものがあります。マジッククオート、グローバル変数(で$id上書き可能$_GET['id'])を使用し、.htaccessを唯一のセキュリティとして使用する場合があります。セキュリティとプログラミングの悪夢。 私たちは過去に、主にSQLインジェクションでハッキングされました。SQLインジェクションはSLEEP(99999999)コマンドを実行し、DOS攻撃として機能します。幸いなことに、彼らは「小さなボビーテーブル」を実行しませんでした。 XKCD:http ://xkcd.com/327/ そのため、脆弱なSQLステートメントをmysql_query()(mysqliではなく)PDOトランザクションに書き直しました。私はまたのためのクエリを分析していますSLEEPとUNION、我々が使用しないが、注射は持っています。ここまでは順調ですね。 最新号 最近、電子メールアドレスがスパマーによって作成されたと思われるものに変更されるなど、ユーザーのDBのレコードが変更されていると言われています。 彼らの列には列がないことに気づいたlast_modifiedので、誰が言うまでもなく、いつ変更されたかさえ知ることができませんでした。私はそのコラムを追加しましたが、それはかろうじて最初のステップです。 このテーブルを見ると、パスワードがソルト化されておらず、ハッシュ化されておらず、プレーンテキストとして保存されていることがわかりました。 クライアント通信 請負業者として、狂人のように腕を振り回すことなく、状況全体についてどのようにアプローチできますか?何かアドバイス?私は穏やかなアプローチを考えていました、 問題#1 あらすじ これが問題である理由 これが修正されない場合に何が起こるか 修正案 問題#2 あらすじ これが問題である理由 これが修正されない場合に何が起こるか 修正案
13 php  apache  security  mysql 

1
PHPに静的プロパティをオーバーロードする機能がないのはなぜですか?
イントロ PHPでは、クラスでマジックメソッドを宣言することにより、メソッド呼び出しとプロパティアクセスをオーバーロードできます。これにより、次のようなコードが有効になります。 class Foo { public function __get($name) { return 42; } } $foo = new Foo; echo $foo->missingProperty; // prints "42" インスタンスのプロパティとメソッドのオーバーロードとは別に、PHP 5.3.0以降でstaticは、マジックメソッドをオーバーライドすることでメソッド呼び出しをオーバーロードすることもできます__callStatic。 何かが足りない 利用可能な機能から目立って欠けているのは、静的プロパティをオーバーロードする機能です。たとえば: echo Foo::$missingProperty; // fatal error: access to undeclared static property この制限は明確に文書化されています。 プロパティのオーバーロードは、オブジェクトコンテキストでのみ機能します。これらのマジックメソッドは、静的コンテキストではトリガーされません。したがって、これらのメソッドは宣言しないでくださいstatic。PHP 5.3.0以降、マジックオーバーロードメソッドの1つが宣言されている場合、警告が発行されstaticます。 しかし、なぜ? 私の質問は: この機能が現在サポートされていないという技術的な理由はありますか?それとも、(震え)政治的な理由ですか? 過去にこの機能を追加する試みが中止されたことはありますか? 最も重要なことは、質問は「ユーザーランドPHPで動的な静的プロパティをどのように設定できますか?」ではありません。とはいえ__callStatic、共有したいことに基づいて特にかわいい実装を知っている場合は、ぜひ共有してください。

6
大規模なPHPプロジェクトの書き直しを計画するためのヒント?
私は、長年取り組んでいたPHPフレームワーク(MVCを使用)を完全に書き直すことにしました。これまでの私の問題は、フレームワーク自体の設計を気にせずに、アイデアを思いついてチケットとしてTracに投入し、後で追加することでした。時間が経つにつれて、これはいくつかの問題を引き起こし、書き直しが役立つと思いますが、どこで計画を始めるべきかわかりません-Tracを使いたくないことは知っています。チケットとマイルストーン-しかし、他に何が必要ですか? 私は本当にこの書き直しを徹底的に計画し、必要なすべての機能、それがどこに行くのか、そしてそれが他のすべての部分にどのように接続するのかを詳細にしたいのですが、このレベルの計画の経験はありません。何かアドバイス?役立つプログラムはありますか?私はTracにうんざりしています。 設計文書が必要になることは知っていますが、従うべきレイアウトはありますか?また、バグ追跡、チケット、マイルストーンなども必要になりますが、Trac以外では、それが何が良いのかわかりません。必要なものはもっとあると思いますが、何がわからないので、どんな助けでも感謝します。

8
PHPはオブジェクト指向ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 私は同僚と興味深い会話をする機会がありました。それらのほとんどは、フラッシュアクションスクリプトまたはJava開発者です。 phpがOOPをうまく処理することについて話しました。PHPは、PHP 5.2または5.3のほとんどすべてのOOPを処理できると述べました。私が間違っている?はい/いいえで答えようとはしていませんが、開発者からもっと意見を聞きたいです。

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