ASP.NETの背景から来て、PHPに慣れるための良い方法は何ですか?[閉まっている]


10

現在、ASP.NET環境でツールやWebアプリを構築することに非常に慣れています。C#、ASP.NET、MVC 3、Visual Studioなどが本当に好きなので、私は本当にtbhを離れるつもりはありません。

しかし、今のところ、PHPについてはほとんど何も知りません。それを是正したい欠陥のようです。

PHPを学ぶのに良いリソースとなる本(または他の学習方法)はありますか?明らかに、最初のPHPの本はたくさんありますが、私はすでにWebページの構築に関連する多くのことに慣れており、一部の最初のPHPの本の範囲と互換性がないかもしれないPHP自体に焦点を当てることに興味があります。

私はPHPマニュアルをかなり読みましたが、理想的なほどスムーズに流れていないようです。適切な初心者向けのPHPブックはありますか?これらのサンプルを見ると、ほとんどの本に含まれるまとまりがありません。たくさんの情報がありますが、それは、主要な学習手段よりもコーディング中の参照のように感じられます。


5
PHPを知らないことがあなたが修正する必要のある欠陥だと思うのはなぜですか?Rails、Django、J2EE、node.jsなどを知らない場合、修正する必要がある欠点ですか?現在の就職先でPHPを知って使用することが本当に求められていますか?
レイノス

1
@Raynosまあ、phpの人気はrails、django、node.jsの組み合わせよりも大きい...
yannis

なぜ(炎ではなく)PHPでより良くなりたいのですか?それは、より多くのものが存在するという理由だけで、より動的で解釈された環境での開発を学ぶためですか?
sbrenton

1
@Raynos-市場シェア。解決策の比較、問題の評価、友人の助けなどに役立つphpに関する知識の確率は、あなたがimoに挙げた例よりも高いです。私はasp.netから離れることを望んでいないので、「最高の」代替環境を知ることは、最も人気のあるものを知ることほど便利ではありません。
Eric

1
最初のステップとして適切なMVC3に参加する
Daniel Little

回答:


7

PHPを学ぶための最良のリソースはPHPマニュアルです。非常によく書かれ、よく構造化されており、PHPコミュニティの最大の資産の1つです。ASP.netに自信がある場合は、このマニュアルで十分です。

ただし、読み始める前に、PHPスタックをセットアップする必要があります。Apache、PHP、およびお気に入りのデータベース(SQLServerは問題ありません)を自分でインストールするか(非常に簡単です)、またはXAMPPのような既製のスタックをセットアップできます。XAMPPがインストールされます:

一度にすべて(および他のいくつかのもの)。欠けている重要なライブラリの1つにphpUnitがあります。これは明らかにユニットテストに役立ちます。

次にIDEをインストールする必要があります。明白な選択肢は、PHP開発ツール(PDT)を備えたEclipse ClassicまたはPHP用のNetbeansです。他にもたくさんありますが、この2つをお勧めします。私は両方を使用していますが、どちらかを選択できない場合は、Netbeansの方がコツをつかむのが少し簡単ですが、実際に両方を評価して、どちらがあなたに適しているかを自分で判断する必要があります。長い間、どのIDEがより親しみを感じられるかは本当にわかりません。

マニュアルから基本事項を理解したら、MVCフレームワークについて考え始める必要があります。もう一度、私は2つをお勧めします:

Zend Frameworkは獣であり、CodeIgniterは美しさです。Zend Frameworkは学習曲線が急であり、ZendPHPを開発している会社)に支えられており、ほぼすべてのことができます。CodeIgniterはコツをつかむのがはるかに簡単で、初心者向けの素晴らしいドキュメントがあり、かなり人気があります。しかし、そのコードベースの大部分は、PHP4をサポートするために使用されていたので、古くなったがらくたです。

初心者にとって明らかな選択はCodeIgniterですが、それで困ることはありません。これを学習ツールとして使用し、できるだけ早くZend Frameworkに移行してください。繰り返しになりますが、PHPの世界にはもっと多くのMVCフレームワークがありますが、これら2つは私が推奨するものです。

本に関して言えば、初心者向けではないすばらしい本がPHPオブジェクト、パターン、そして実践です。SitepointPHPの本はいつでもお読みいただけます。PHPに夢中になったら、PHPアーキテクトへのサブスクリプションを検討する必要があります。

最後に、PHPが最初の選択肢として選択された純粋に技術的な理由について、この素晴らしいディスカッションをご覧ください。


更新:主に初心者を対象としない、さらにいくつかのオンラインリソース:

また、何らかの奇妙な理由で、ApacheではなくIIS上のPHPをいじりたい場合は、MicrosoftのWindows上PHPが出発点として最適です。IIS上のPHPは機能し、特に.Net開発者にとっては有効な選択ですが、完全なPHPエクスペリエンスを取得し、スキルを他の一般的な人に移植できるようにするには、Apache(およびSQLServerではなくMySQLまたはPostgreSQL)を実際に使用する必要がありますOS。mod_rewriteの喜びを見逃したくないです。


個人的な注意:PHPには多くの嫌悪感が漂っていますが、その一部は正当化されています。あなたがそれのために行くことに決めた場合、あなたは途中で出会う様々なPHPリソース、スクリプト、ライブラリに非常に批判的でなければならず、そこにはあまりにも多くのがらくたがあり、初心者が違いを知ることは不可能です。PHPの幅広い人気は、非常に大きくて役立つコミュニティ、スキルの市場性、数百万のブログに翻訳できますが、数千テラバイトのくだらないコードに翻訳することもできます。


2

Yannisにはたくさんの良い説明がありますが、「Build Your Own Database Driven Web Site、4th Edition」を読んだところ、プロフェッショナルなPHP Webアプリケーションの開発に着手するために知っておくべきすべての情報が満載でした。

また、PHPの作業を始める前は、.NETだけで作業していました。PHPの方がはるかに扱いやすいですが、大規模なアプリケーションを開発するときにいくつかの特有の問題があり、この本はそれを始める手掛かりになります。

私にとっての1つの問題は、PHPが厳密にオブジェクト指向言語ではないことです。手続き型とオブジェクト指向型のすべての種類の関数があり、すべてがクラスと名前空間に編成されている言語であるため、慣れるまでに少し時間がかかります。

もう1つは、PHPのすべてを簡単に組み合わせることができ、物事をはるかに困難にすることでした。.NETでは、Visual Studioなどのツールを使用して、いくつかの作業を行うことにより、優れたコーディング標準を実際に実践できます。通常、.aspxページでは、HTMLマークアップとC#コードが2つのファイルに分かれています。

.NETツールのヘビーユーザーで、ASP.NETコントロールを使用したい場合、PHPにコントロール(GridViewなど)がないことも問題になります。同様の機能を提供するライブラリ/フレームワークはたくさんありますが、それらは基本的なPHPパッケージの一部ではありません。

私にとってのもう1つの問題は、PHPで配列とハッシュが頻繁に使用され、.NETのコレクションのように機能することでした。それらは至る所にあり、配列は同じタイプのオブジェクト/スカラーユニットの順序付けられたリストではないという事実に慣れるのが良いでしょう。あらゆる種類のものを格納するコレクションオブジェクトとしてサーバーできます。

私は何度も続けることができますが、PHPに非常に特有であることがわかった主要なことの1つに言及すると(他の言語でも一般的である可能性があることはわかりません)、 "include"(および関連する)関数が使用される頻度ですとても一般的です。Sitepointの本を読めば、このすべてを理解することができます。


私の答えにはSitepointのphpブックへのリンクがあります。それらはすべて優れています。答えを少し広げて、peculiar issues when developing large scale applications特定したことを教えてください。あなたはopとして.netの背景を持っているので、.netの人々がphpに特有であると感じるものを知ることは役に立ちます。
yannis

OK Yannis、私にとっての1つの問題は、PHPが厳密にオブジェクト指向ではないということでした。手続き形式とオブジェクト指向形式であらゆる種類の機能があり、そのように体系化されただけでなく、クラスだけにそれらのすべての名前空間とすべてに。
tsega

うーん、それだけではなく、一般的な問題when developing large scale applicationsです。とにかく、PHPは.Netとはまったく異なるアプローチでスケーリングの問題に取り組んでいるなど、概念とアプローチの問題についてもっと考えていました。私は.Netの経験がほとんどないので、PHPに来たときに.Netの人々が概念的に奇妙なものを見つけたいと思っています。ただし、PHPがマルチパラダイムであるという事実はもちろん予想されます。
yannis

1
アプローチに関しては、ほとんどのASP.NET開発者は、カスタムコントロール(コンポーネント-HTMLコントロールとJavascriptおよびサーバー側コードの組み合わせ)を使用して「大規模」(データ集約型)アプリケーションを開発する傾向があります。これは、ほとんどのASP.NET開発者が、ほとんど同じツールを使用して、デスクトップアプリケーション開発からWeb開発に実際に移行しているためです。そのため、ほとんどの人は、カスタムコントロールを使用して習得したスキルをWeb開発に合わせて翻訳する方法を模索しています。
tsega

この本で得られる非常に優れたIDEはNetbeansです。PHPのデバッグは、最高の状態です。
tsega
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.