MacroCat@Siro - ExcelVBA・PHP・フリーランス

ExcelVBA、WEBスクレイピング、その他技術に関して書いていきます。

PHP + CodeigniterでWEB開発はじめました

f:id:sirosiro346:20171020173709p:plain

WEB開発はじめました

こんばんわ、siroです。
最近冷え込んできて部屋が寒くてやばいです。エアコンこっちの部屋にも買わないとそろそろ危ない気がしてきました。笑
さっそく脱線しましたが、今回からWEB開発の記事もアップしていこうと思います。

もともとExcelVBAの開発よりもWEB開発の方が携わった期間が長いのですが、WEBが得意です!
と大きな声で言えるようなレベルに自分はなっていないと思い、一番得意だったVBAをやっていたんですが、
最近ExcelVBAを開発していてすごく思うことがあるんです。

①大量データ扱う場合にExcelで実現できない場合がある
②WEBスクレイピングやるにしても処理速度が遅い

DBを利用しないときついような規模の開発や、速度的にExcelは課題を抱えているように思います。

それでもコストを安く提供できるし、Excelだったらほとんどの人がパソコンに入れているという意味で提供はしやすいのでメリットも多いんですが、ExcelVBAで仕事請け負っていると、これ絶対WEBで実現したほうが効率的だし、顧客も作業減ったりして良いんだけどなぁ・・・と思う機会が増えてきたので、ためしに提案数に対してどのぐらい感じるかカウントしてみたところ、、、

なんと4割もありました!

10件提案して4割が中・大規模案件または、DB等を利用してデータを利用したほうが良いようなものだったのです。

私が今までWEB開発、ExcelVBAを開発してきた感覚で感じていることなので何とも言えないかもしれませんが、
WEBで開発したらもっと良くできますよ!と提案できるようになった方が顧客も選択肢が増えるし嬉しいだろうなーと思ったのが最大の理由です。


なぜPHP

私は今まで以下のような開発経験があります。

php + codeigniter(2系)で社内システム開発 (半年ほど)
C# + ASP.NETで社内システム開発 (2年ほど)

学習コストはなるべく抑えたい(なるべく早く顧客に提案したい)かつ、提供しやすい言語がベスト!
だと思ったので、PHPを選択しました。

PHPはほぼすべてのレンタルサーバで稼働させることが可能ですし、
レンタルサーバも安いところは月額500円前後なので、それも提供しやすいなーと思ったからです。

単純にとっつきやすい言語だったという理由もあります。

フレームワークとは?

PHPは基本的にほとんど0の状態からプログラミングをしていきます。
また、もともと大規模開発を想定していなかったという背景もあるようで、
phpで開発する場合は例外なくフレームワークを利用します。
RubyだとRuby on Railsというフレームワークが人気だったりしますね


コーディングは作る人によって書き方や癖などが出やすいため、一定の質を担保した開発が難しくなってしまいます。
そういったものをもろもろ手助けしてくれるのが、フレームワークです。
(ちょっとざっくりしすぎたかも・・・)

もう少しシステム的に説明すると、
 ・ある程度の基礎的な部分をフレームワークが提供し、アプリ開発時にはそれを利用した書き方をしていく事ができる仕組み
 ・開発作業効率化ツール
みないなイメージですかね。
(まだざっくりなような・・・)

Webアプリとしての土台の仕組みとしてフレームワークを利用することで、以下のような様々なメリットがあります。
アプリ開発が高速化する  (少ないコード量で大きなことを実現できるようになるからです)
・保守性・可読性が上がる (ルールに則って書くためです)
・複数人で開発がしやすくなる (ルールが決まっているため、コミュニケーションがとりやすいです)


上記のような理由から、フレームワークは必要不可欠なので最初に何を使うか決める必要があります。

フレームワークっていろいろあるの?

PHPだけで言っても数十種類ぐらいあると思います。

有名どころで言うとこんな感じです
 ・CakePHJP
 ・Laravel
 ・FuelPHP
 ・Codeigniter
 ・Zend Framework


WEBスクレイピングをやりたかったため、速度を重視してフレームワークを検討し、
Codeigniterを採用することにすることにしました。
FuelPHPも高速かつCodeigniterよりも色々機能豊富だったのですが、学習コストを加味してCodeigniterにしました

レンタルサーバを用意しよう

まずは、作ったものをアップし、WEBサイトやWEBサービスとして表示するためのレンタルサーバを用意しなければなりません。
自分のローカル環境のみで動かすのであれば、そんなものは必要ないのですが他の人にも見てほしかったり、別のPCやネット環境から利用する場合は必須ですね。

おすすめレンタルサーバ
 ・ロリポップ     ←1番安い
 ・さくらサーバー  ←ロリポップより少し機能豊富ででも安い
 ・エックスサーバー  ←この中だと少し高いけど良いサーバー


今回は、さくらサーバーにすることにしました。
作ったもの動かしてみて動作とかでまたサーバー検討するかもしれません。
 

レンタルサーバーへのソースファイルアップ方法

基本的にはFTP通信でファイルアップロードします。

さくらサーバーの場合は、一応アップロードするツールがついているのでそちらでアップロードも可能です。
help.sakura.ad.jp

私の場合は、phpでの開発にPhpStormというIDEを使っているので、IDEで更新したファイルが自動的にサーバーにアップされるように設定しました。
IDEはソフトウェアの開発環境のことで、ソースを書いていくツールです。高機能なものを使うとコーディングが早くなります。
 無料のものでphp関連だと、eclipseが有名ですかね。PhpStormは有料ツールですが、使いこなしたときの速度が段違いだったので結構前に買っていました。

とりあえずレンタルサーバにアップしてみた

Codeigniterの説明しておいてまだ使っていないですが、とりあえずMacroCatのLPができたのでPhpStormからアップしてみました。
http://macro-cat.sakura.ne.jp/Home/index.html


一応まだあまり告知していませんが、このサイトからも仕事請け負うことができるようになっています。
※といっても問い合わせメールする機能しかまだないですが、、、笑

まとめ

今回は、phpでWEBアプリケーションを開発するための準備をしました。
次回以降はCodeigniterの記事もたまに書いていこうと思います。
おそらくソース + 一言の記事が量産されると思います。笑

では今日はこの辺で。

ノシ