並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 2231件

新着順 人気順

phpunitの検索結果81 - 120 件 / 2231件

  • ウノウラボ by Zynga Japan: EclipseでPHP開発

    メリークリスマス!11月に入社した関山です。 みなさんはPHP開発に何を使っていますか? 僕はMac用のエディタTextMateとmi、コンソールではvimを併用していますが、入社を機にEclipseでのPHP開発にトライしました。 Eclipse for PHP Developersをインストール Eclipse DownloadsよりPHP開発ツール (PDT) がセットアップ済みのパッケージEclipse for PHP Developersが入手できますので、これを使いました。バージョンは最新のEclipse Helios (3.6.1 SR1)です。 プラグインをインストール ローカルで開発するだけならそのままでも大丈夫ですが、僕は以下のプラグインをインストールしました。 Babel インストール直後はUIが英語なので、プラグインで日本語化します。 「ヘルプ」>「新規ソフトウ

    • PHPでもHudson使うべし

      今までもPHP案件でCIはしているんだけど、環境にはCruiseControl+phpUnderControlという構成で、これももう古いなぁと思ったのでHudsonに移行してみた。 感触としては、PHP案件でもHudson使うべし、でいいんじゃないかな。 導入 今回導入した環境はCentOS5.3なので、rpmを使ってインストールできる。 sudo rpm --import http://hudson-ci.org/redhat/hudson-ci.org.key wget http://hudson-ci.org/latest/redhat/hudson.rpm rpm -Uvh hudson.rpm なお、当然のことだが、Hudsonを動作させるためにはJDKのインストールが必要なので、先にインストールしておく。 インストールが完了したら自動起動の設定をして、起動する。 /sbin/

        PHPでもHudson使うべし
      • PHP Development Company - Hire Senior PHP Developers - Astec

        PHP is an open-source server-side scripting language widely used in web development. Mature and well-tested, PHP is constantly being developed to provide new features and become even more robust and flexible. Varied PHP frameworks allow developers to use powerful tools that facilitate the development process. Easy to start with but hard to master, PHP can be a beast if used properly by skilled dev

        • 一人でゲームをリリースするための自動化 PHPUnit編 ~目指せCoverage 100%~

          Coverage 100%への道のり 1. --coverage-htmlして現状を確認 2. time()やmt_rand()などを使うコードもテスト 3. 複雑なオブジェクトを使うコードもテスト 4. ファイルシステムを使うコードもテストRead less

            一人でゲームをリリースするための自動化 PHPUnit編 ~目指せCoverage 100%~
          • PHPでBDD(Behavior Driven Development)する方法

            みなさんこんにちは。@ryuzeeです。 RubyであればRSpecやCucumberとか使って、むしろBDDしているケースの方が多いようですが、PHPでやっている事例はあまり聞きません。 とりあえずPHPでもBDDできることは確認できたので、その方法をご紹介します。 ※実戦投入にはもうちょっと検証は必要かもしれません。 BDDとは?BDDとはビヘイビア駆動開発(Behavior Driven Development)でテスト駆動開発から派生したものです。 テスト駆動開発とドメイン駆動設計を統合したようなイメージになります。 対象における「振る舞い」や「制約条件」の検証のために、自然言語的な記述でテストコードを記述します。 スペックファーストで仕様を作ってから実装するという流れになります(コードを書く前に振る舞いを決める)。 ということで、以下ではPHPでBDDを行う方法について解説してい

              PHPでBDD(Behavior Driven Development)する方法
            • HomebrewでPHP環境 現時点でのまとめ - なんたらノート第三期ベータ

              MacでHomebrewを使ってPHPの開発環境を作るまとめです。 HomebrewはMacPortsより圧倒的にコンパクトなのがメリットです。MacPortsでPHPをインストールすると、/opt/localに、Apacheを含め、すごい量のパッケージをインストールされます。PHPのビルドにApacheのライブラリが必要で、さらに、Apacheのビルドには...という具合。これだと、容量あたりの単価がかかるSSD搭載のMac bookがかわいそうですね。HomebrewのPHPは、MacOSにApacheがあるのを知っているので、依存が浅くて軽いです。 MAMP.appがあるじゃないかという人はちょっと待った。あのパッケージ構造、httpd.confとphp.iniとmy.iniがどこにあるかすごくわかりにくいんですよね。そのうえ、使っている拡張の最新バージョン追従が個別にできないのは辛

                HomebrewでPHP環境 現時点でのまとめ - なんたらノート第三期ベータ
              • PHP開発でCIするならScrutinizer使ってみよう - Qiita

                Scrutinizerが凄い!! ScrutinizerというサービスがPHPの静的解析出来て凄いというスライドを読んで試しに使ってみたら思いの外すごかった。 公式サイトURL https://scrutinizer-ci.com/ スライドの記事 http://www.slideshare.net/hinakano/scrutinizer-ciphp オープンソースのリポジトリ(publicリポジトリ?)なら無料で利用出来るようです。 静的解析が優秀! Scrutinizerでは初期設定の段階で、php-sim、pdepend、php-analyzerツールが有効になっています。 これらツールの他に設定で、 PHP Code Sniffer PHP Change Tracking Analyzer PHP CS Fixer PHP Mess Detector Security Advis

                  PHP開発でCIするならScrutinizer使ってみよう - Qiita
                • 和田卓人さん出題のテスト駆動開発問題『現在時刻とロケールに依存するテスト』をPHPを使ってオブジェクト指向で解答してみました #php #object_oriented|CodeIQ MAGAZINE

                  テスト駆動開発の巨匠・和田卓人さんからの『現在時刻とロケールに依存するテスト』問題をPHPメンターズの後藤秀宣さんが解答してくださいました! この記事は、その後藤さんによる解答コードの公開と解説記事になります!! by CodeIQ運営事務局 PHPメンターズの後藤です。 和田卓人さん出題の『現在時刻とロケールに依存するテスト』問題をPHPを使ってオブジェクト指向のアプローチで解答してみました。 ※問題文については、和田卓人さんの解説記事を参照にしてください。 https://codeiq.jp/magazine/2013/11/1475/ 解答例は次の環境で作成しています。 PHP 5.5.4 PHPUnit 3.7 Composer サンプルコードのリポジトリをGitHubにて公開しています。コミットログなど合わせてご参照ください。(解説中にも各コミットへのリンクを貼ってあります) g

                    和田卓人さん出題のテスト駆動開発問題『現在時刻とロケールに依存するテスト』をPHPを使ってオブジェクト指向で解答してみました #php #object_oriented|CodeIQ MAGAZINE
                  • Zeal - Offline Documentation Browser

                    Zeal is an offline documentation browser for software developers. Download for Windows Download for Linux Get Dash for macOS Version 0.7.1 Zeal comes with 189 awesome docsets! ActionScript Akka Angular AngularJS Ansible Apache HTTP Server Appcelerator Titanium AppleScript Arduino AWS JavaScript BackboneJS Bash Boost Bootstrap 2 Bootstrap 3 Bootstrap 4 Bootstrap 5 Bourbon C C++ CakePHP Cappuccino C

                    • PHPでブラウザテストの自動化! Facebookの作ったツール「php-webdriver」で人生がときめく - Connehito開発者ブログ(サンプルコード付き)

                      こんにちは、コネヒトでPHP書いたりしています金城(@o0h_)ともうします。烏龍茶が好きです。 (テスト自動化おじさんの弊社内におけるイメージ) 突然ですが! 皆さんも、自分の実装についていまいち自信が持てない時はございませぬか。 「あの実装・・頭をよぎる不安・・眠れない夜・・・・」そんな気分で毎日を過ごしていませんか? 「誰かに許して欲しい、安心をください」。 そんな時はテストを書きますよね。緑色が好きな人、この界隈には私だけではないはずです! ただ、どうしても検査しづらいな〜どうやって試せば良いかな〜と悩ましい時もあるのではないかと。 「エンドユーザーが直接触るのってブラウザでしょ、だったら実際にブラウザを使った操作が滞りなく可能なら問題ないよね・・」とか、考えたことありませんか? ここで闇堕ちしたプログラマは、ぽちぽちとhttp://localhostを開いたGoogle Chro

                        PHPでブラウザテストの自動化! Facebookの作ったツール「php-webdriver」で人生がときめく - Connehito開発者ブログ(サンプルコード付き)
                      • ユニットテストはなぜ必要なの?

                        開発の全工程の中で、あまり人気がないのがテスト工程だ。ソフトウェアの品質を証明するためのテストは、なぜ低く見られてしまうのか(編集部) そもそもテストはなぜ実施するの? 皆さんはテストと聞いてどういったイメージをお持ちでしょうか。 「面倒くさい」「プログラマの仕事じゃない」「納期直前に徹夜でするもの」「そもそもしない」……。 残念ながら筆者の周りにいる開発者に聞いてみても、あまり人気のある工程とはいえないようです。 さて、本連載で扱うテストとは、もちろん学期末の終わりに実施するような人の知識、習熟度を試すテストではありません。ソフトウェア開発におけるテスト、つまり「ソフトウェアの品質を証明するためのテスト」のことです。自分たちが作り上げたソフトウェアに対して自らテストし品質を評価する工程、そして、テスト結果は常に100点である必要があるという半ば自己満足的な性質を持つ試験のことです。 しか

                          ユニットテストはなぜ必要なの?
                        • PHPで開発する最新スタートアップWEBサービスの裏側を公開します

                          リリースしたばかりの最新WEBサービスの使用技術ついてご紹介したいと思います(最新ではありますが最先端技術ではありません)。 スカウトミー https://scoutme.biz ITエンジニア専門のスカウト転職サービスです。 求人票の掲載も人材紹介も一切なく、登録エンジニアは採用企業自らが直接送るスカウトメールをひたすら待ちます。 ※今は転職を考えていないという人も登録可能ですので、自分の価値を確かめる為にも是非! 開発チーム構成 エンジニア:1名 デザイナー:1名 ディレクター兼デザインアドバイザー:1名 開発期間 2017年2月にキックオフし、9月現在、スタート時の機能は一通り実装終えました。特に残業をしたり無理をするようなことはありませんでしたので、開発実期間は8ヶ月程度といったところです。 採用技術 典型的なLAMP nginx(画像サーバ兼リバースプロキシ) Apache +

                            PHPで開発する最新スタートアップWEBサービスの裏側を公開します
                          • PhpStormを最高のSymfony2開発環境にする設定

                            PhpStorm で Symfony2 の開発するときにいつも設定していることをまとめました。たまに設定を初期化するとデフォルトから何を変更していたか分からなくなるので備忘録として。Symfony2 以外のプロジェクトもほとんど同じ設定で開発しているので Symfony2 を使っていない方も参考になると思います。 動作確認環境 Mac OS X El CapitanPhpStorm 2016.1PHP 5.4Symfony 2.3 目次 プロジェクトを作成する Symfony2 View を有効にする cache, log, vendor ディレクトリをプロジェクトから除外する vendor ディレクトリを Include path に追加する Symfony2 Plugin で入力補完を強化する Symfony2 の console コマンドを PhpStorm から実行する エディタの

                              PhpStormを最高のSymfony2開発環境にする設定
                            • JenkinsとDockerでTravisっぽいCIサーバを育ててみている - オープンソースこねこね

                              最近プライベートなプロジェクトのCIにはcircleciとかが人気なんでしょうかね。 GitHub 時代のデプロイ戦略 - naoyaのはてなダイアリー 近頃のCIサーバはアプリケーションのテストだけじゃなく、インフラのテストやデプロイ、ChatOpsなどgitやチャットツールなど他のシステムと連携した自動化のための必須プラットフォームといった感じになってきてる。とはいえ、趣味で開発しているプロダクトに余計なコストはかけたくない。ああ、でもやっぱCIはしたい。 そんなわけで以前から契約だけしていて放置気味だった、さくらのVPSの1GにjenkinsをたててオレオレCIを育てているのでその辺のことを書いてみる。CIの実行環境はDockerを使って仮想化し、ジョブの内容はTravisやcircleciのようにリポジトリ側のyamlファイルに記述できるようにしてみた。構成をざっくりと図解すると以

                                JenkinsとDockerでTravisっぽいCIサーバを育ててみている - オープンソースこねこね
                              • レガシーPHP改善日記 シーズン1 エピソード2 - komagataのブログ

                                hrysd心を折られるチンカスプログラマーことhrysdがバイトで来てくれることになったので一緒に大門に出社。 初出社前に既にバグを一個潰してコミットしているという荒業を見せたhrysdだが、3000行を超えるcontrollerに早くも心を折られる。 俺「actionのメソッドが5行を超えたら危険印、なんていうrailsのぬるま湯に使ってたんだよ!これがサバンナだ。」 Github Organization契約出社後早速、社長にGithub Organization Bronzeプランを契約してもらう。技術的なことはわからないというが、リスクを背負って立てなおそうという気持ちが伝わって来ました。 9月30日の直近の締め切りに間に合わないのでsvn + redmineからの移行は10月にお預けだ。 svnがよくわかってないまずはsvnでもトップにぶち撒けられてるというのは辛いのでtrunk

                                • Laravel実践入門! シンプルなREST APIを実装して学ぶ、多機能なPHPフレームワークの使い方|ハイクラス転職・求人情報サイト AMBI(アンビ)

                                  これからLaravelを利用するのであれば、どのバージョンを使えばよいでしょうか? 現在(2020年9月時点)の状況であれば、6もしくは8のいずれかを選択することになります。どちらを選ぶかはアプリケーションの要件次第です。長期間安定したバージョンを利用したいのであれば6を、最新機能を利用していきたければ8を選ぶことになります。 この選択はさらに、セキュリティフィックス期限が切れた後にも影響します。例えば6を選択した場合、おそらく長期間利用することになるので、次にバージョンを上げる際は最新バージョンとの差異が大きくなり、アップグレードに手間がかかる可能性があります。 一方、8を選択して最新バージョンに適宜アップグレードしていけば、頻度は増えますが、都度の手間は小さくなります。ご自身やチームの開発状況や方針などを鑑みて、どちらを選ぶか検討してください。 なお、Laravelは6以降、セマンティ

                                    Laravel実践入門! シンプルなREST APIを実装して学ぶ、多機能なPHPフレームワークの使い方|ハイクラス転職・求人情報サイト AMBI(アンビ)
                                  • 文化祭入退場・混雑管理システム "CAPPUCCINO" 開発・運用記

                                    この記事は、文化祭実行委員会に所属する[1]現高校 3 年生 3 人で文化祭の入退場混雑管理システム「CAPPUCCINO」を 2 年間に渡り開発し、実際に運用した記録を残したものです。 *この記事は以下の 3 名による共同執筆です 著者・開発者: すばる (@su8ru / Twitter:@su8ru_) 高校3年生。普段は TypeScript に使われながらウェブフロントエンド技術で遊んでいます。 たけ (@takeno_hito / Twitter:@Takeno_hito) こうこうさんねんせい。コーディングよりはゲームのほうが好きです。上下二人に揉まれながらも一応リーダーをやってました。 ふわわあ (@fuwa2003 / Twitter:@ibuki2003) 高3。Vimmer。半言い出しっぺなのに後半コード書いてないとかで最近は肩身が狭い思いをしています。 1. CAP

                                      文化祭入退場・混雑管理システム "CAPPUCCINO" 開発・運用記
                                    • PhpStorm から Vagrant VM の PHP アプリケーションをリモートデバッグする(Web & CLI)

                                      Home > Laravel | PHP | PhpStorm | Vagrant > PhpStorm から Vagrant VM の PHP アプリケーションをリモートデバッグする(Web & CLI) PhpStorm から Vagrant で構築した VM の PHP アプリケーションをリモートデバッグする方法です。Web アプリケーションだけでなく、CLI アプリケーションでもリモートデバッグできるように設定していきます。 VM スペック 192.168.33.41 を private network で設定 PHP + Xdebug がインストール済み ホストと VM は、synced folder でディレクトリを共有(/path/to/src -> /share) 0. Xdebug によるリモートデバッグの仕組み リモートデバッグを設定する前に PhpStorm と Xd

                                      • CakePHP2.0+Jenkinsで継続的インテグレーションを行う方法

                                        みなさんこんにちは。@ryuzeeです。 CakePHP2.0になってテスティングフレームワークがSimpleTestからPHPUnitに変わったことで、以前に比べると大分簡単にはなっていますが、まとまった情報が少ないので整理しておきます。 事前準備JenkinsのインストールおよびCIサーバへのPHPのインストールは済ませておいてください。 CakePHP2.0でCIを行う場合は、以前のようにStagehand_TestRunnerを使ったりPhingを使う必要はありません(Phingは以前も使わない手もあった)が、PHPUnit、Xdebugのインストールは行なっておきます。 また今後利用するであろう、PMDやCPD等も導入しておくと良いでしょう。 なお、今回の作業はCentOS5.7上でPHP5.3.8を利用して行いました。 PHP関連のパッケージ導入 pecl install xd

                                          CakePHP2.0+Jenkinsで継続的インテグレーションを行う方法
                                        • PHPでネイティブ関数を含むコードのテスタビリティを上げる2つの方法 - 絶品ゆどうふのタレ

                                          PHPでテストケースを作成する場合、ネイティブ関数を使っているようなコードに対してテストを実行しようとすると、どうしても環境に依存したり、実リソースにアクセスする必要が出てしまうことがあります。 この記事では、そのような問題に対する対処法を提示します。 経緯みたいなもの 先日もWeb APIをコールするPHPライブラリを書いていたのですが、HTTPをたたく部分のテストを切り離せず、もやもやしていました。 ちょっと前にPerlのTest::Timeというライブラリを教わって感動していたのですが、PHPでもネイティブ関数をオーバーライドできたらどんなにすばらしいだろう、などとぼやいていたのです。 そんなときに、@takimoにPHP 5.3ならオーバーライドできるよねって言われて、ハッと思い立ってテストに組み込む方法を考えてみたところ、割とスマートに実現できそうな方法が見つかったので、方法論の

                                            PHPでネイティブ関数を含むコードのテスタビリティを上げる2つの方法 - 絶品ゆどうふのタレ
                                          • コードやテストを保存したら自動でPHPUnitを実行しGrowlへ通知する環境 | Act as Professional

                                            TDDやってますか?テストを書いて、実行。コードを書いて、テストを実行。PHPUnitコマンドを1日に何度も叩いているPHPerに朗報です。コードとテストを修正して保存をすると、それを検知して、自動的にPHPUnitを走らせて、結果をGrowlで通知する環境をつくりました。これで、TDD Boot Camp in Tokyo #tddbcもテンポ良くすすめられますね。 gem watchr インストールPHPerには申し訳ないのですが、Rubyのgemを使います。 gem install watchr growlnotify インストールGrowlへの通知をするgrowlnotifyをインストールします。 Growlをダウンロードして、Extraディレクトリに含まれている、growlnotifyをインストールしてください。 環境をcloneする hirocaster/phpunit-sta

                                              コードやテストを保存したら自動でPHPUnitを実行しGrowlへ通知する環境 | Act as Professional
                                            • PhpStorm + Docker for Mac(docker-compose)での PHPUnit と Remote Debug の設定 - Shin x Blog

                                              PhpStorm から Docker for Mac の Docker コンテナ内で PhpUnit のテスト実行や Remote Debug を行うための設定です。 下記バージョンにて構築を行いました。 PhpStorm 2017.2.4 Docker for Mac 17.09.0-ce-mac35 PHP 7.1( php:7.1-apache ベース ) Xdebug 2.5 サンプルプロジェクトの取得 サンプルプロジェクトを用意したので、このプロジェクトをベースに設定を行います。このプロジェクトには、初期状態の Laravel アプリケーション(5.5)が含まれています。 github.com git で clone して、make を実行すると composer install と docker-compose up が実行されます。ブラウザで、 http://localhos

                                                PhpStorm + Docker for Mac(docker-compose)での PHPUnit と Remote Debug の設定 - Shin x Blog
                                              • PHP5.4時代のprivateメソッドテスト手法 #php5_4

                                                PHP5.4 Advent Calendar 2011の7日目です。昨日は@madapajaさんの「PHP5.4+ で開発が行われている BEAR.Sunday フレームワークを動かしてみる」でした。 さてさて皆さん、ユニットテストしてますか? PHPもテストのライブラリが充実してきており、カバレッジ100%に情熱を燃やしている方も多いことでしょう。 ユニットテストで困るのが、private/protectedメソッドです。外から呼べないので、普通の方法ではテストできません。(protectedは適当なダミーのサブクラスを作ってそこからテストできますが、ちょっと面倒です。) まあ当然です。外から呼べないようにprivateにしているので、簡単に呼べたら逆に困るわけです。しかしながら、privateメソッドも外から呼んでテストできた方が開発ははかどるでしょう。この記事ではPHPでprivat

                                                  PHP5.4時代のprivateメソッドテスト手法 #php5_4
                                                • PHPUnitの使い方まとめ2016 - Qiita

                                                  前置き 地味にこの記事が読まれ続けているみたいなのですが、内容がよい加減に古くて心苦しいので、もうちょっと現代的な内容にマイグレーションしたものを投稿しようと思います。当時と違ってQiitaにもよい記事増えているのに今更感あるのですが、あの記事に辿りついてしまった人のため……という感じで書いておきます。 大前提 PHPUnitを使ったからといって、どんなソースコードもテストできる訳ではありません。テストをし易いようにクラスを設計している必要があります。また、そのように設計していてもUnitテストに入れることの出来ない箇所は出てきます。Unitテストに入れることの出来ない箇所は出来ないと割り切らなければなりません。むしろ、どれだけのコードをUnitテストに入れることが出来るか? というのが設計者の腕の見せどころになるでしょう。極論を言うと 「どんなクラスでも疎結合に実装していなければならない

                                                    PHPUnitの使い方まとめ2016 - Qiita
                                                  • Travis CI上でPHPアプリのWebベースのテストを自動化する | Engine Yard Blog JP

                                                    PHPなどのさまざまな言語のオープンソースプロジェクトのCI環境として利用されているTravis CIでWebベースのテストを実行してみました。 通常は純粋なコードベースのユニットテストを実行する事が多いかと思いますが、CMSやEコマースエンジンなどオープンソースで配布し、インストールして使うようなソフトウェアではWebブラウザベースでの機能テストを自動化したいというニーズがあるでしょう。Travis CIにはfirefoxがインストールされておりブラウザベースのテストが出来る事は知っていたのですが、今回年末年始の宿題的にテストを実行する為の設定をひと通り行ってみました。 説明を抜きにして動作が見たい方はGitHubとTravis CIへどうぞ yandod/candycane https://github.com/yandod/candycane candycane on Trav

                                                      Travis CI上でPHPアプリのWebベースのテストを自動化する | Engine Yard Blog JP
                                                    • Xdebugを導入してみる - JavaのStackTraceが欲しい! - Do You PHP?

                                                      [2005/12/31]Xdebug2.0.0beta5がリリースされています。PECLのページからどうぞ。 PHPでちょっとした規模の開発を行っていると当然ユーザー定義関数やクラスが増えてきて、だんだんでバッグがしにくくなります。構文エラーとかは問題ないのですが、例えば何らかのDBアクセスクラスを使ってSQL文を実行してエラーが発生したとき、PHPが表示してくれるエラー発生行番号はあくまでDBアクセスクラスの行番号になってしまいます。また、条件によってSQLを組み変える場合など、最終的にどの様なSQLを実行したのか <?php echo $sql; ?> などとして表示させないと分からなかったりします。 PHP4.3.xならdebug_backtraceとtrigger_errorで実装できるだろうということは分かっているのですが、PHP本体でどうにかならないかなぁ。。。と思って調べてみ

                                                      • 待って!そのデプロイ本当に大丈夫?✋ - きりだるまの記録帳

                                                        全国100万人のエンジニアの皆さんこんにちは、デプロイしてますか? この記事は、本番環境でやらかしちゃった人 Advent Calendar 2019の5日目の記事です 予想以上にこのアドベントカレンダーが注目されてて、書きながら「これ炎上しないよね…」「なんかマズイこと書いてないよな…」と胃が痛くなってます 自分みたいなザコメンタルにはつらい…めっちゃやむ… この記事はただの不注意が原因のやらかし話です 過度な期待はしないで下さい 追記 さすが3000人以上に購読されてるアドベントカレンダー、アクセス数がすごいことになってますね…怖い… いくつかコメントや言及を頂いたので、追記というのをしておきます テスト環境ないの? あります タスクAに関してはテスト環境での動作チェックが不十分だった タスクCに関しては焦ってて動作確認せずに出しちゃった(「まぁこれくらいの変更なら大丈夫でしょ」という

                                                          待って!そのデプロイ本当に大丈夫?✋ - きりだるまの記録帳
                                                        • [PHP]安定したシステム運用を目指して取り組んだこと - Qiita

                                                          はじめに PHP7へのverupをきっかけに 安定したシステム運用 保守しやすいコード を目指し、少しずつ色々なことを試みています。 この記事では、私が行なっているコード改善の取り組みを共有したいと思います。 一般的なものしか書いていないかもしれませんが。。。 スタイルガイドを守れているかphpcsを使ってチェックする 私が参加しているプロジェクトにはpearベースのスタイルガイドがあるにはあったのですが、 出来上がったコードを機械的にチェックする仕組みがありませんでした。 PHP7へのマイグレーションを契機に、コードがスタイルガイドに沿って書かれているかPHP_CodeSnifferを使って機械的にチェックするようにしました。 このツールは有名ですので説明は不要かもしれませんが簡単に説明すると、 phpcs : 定義したスタイルガイドに違反していないかチェックする phpcbf : コー

                                                            [PHP]安定したシステム運用を目指して取り組んだこと - Qiita
                                                          • PHPUnit と Selenium RCで機能テストをやってみる : エクスギア Blog

                                                            PHPのテストライブラリとしては一番有名どころのPHPUnitと実際のブラウザをJavaScriptを使って画面遷移をテストすることができるSelenium RCを使って実際に結合テストを行ってみたので今回紹介したいと思います。 PHPUnit PHPUnitはPHPの一番有名なテストライブラリです。テストケースを用意することで仕様変更にも強いアプリケーション開発が可能になります。 さまざまなことができるPHPUnitですが、PHPUnitだけでは画面遷移のような機能テストは難しいものです。 なぜなら、PHPだけで画面遷移を確認するためにはブラウザの動きをシミュレーションしたライブラリを使ったりしてテストする方法になってしまうからです。 たとえばsymfony1系ではsfTestBrowserというライブラリが用意されていてこのライブラリを利用することでテストが行えるようになっていますが、

                                                            • ある PHP 案件の振り返り | Carpe Diem

                                                              2015 年、僕がメインで担当したとある PHP 案件の振り返りを行ってみようと思います。おもに技術面から、設計前に想定したこと、実際に導入してうまくいったこと・いかなかったことを振り返ってみたいと思います。 技術的な環境は、次のとおりです。 インフラ環境: オンプレミス(だいだい6台くらい、このときのためにほぼハードウェアを新規に調達しました) OS: CentOS 7.0 言語: PHP 5.6 フレームワーク: FluelPHP 1.7.x データベース: Postgresql 9.3 ミドルウェア ロードバランサー冗長化: Keepalived(新規) ウェブサーバ: Apache から Nginx に変更、PHP は FPM キャッシュ: Redis(新規) 検索: Elasticsearch(新規) ログ: Fluentd(新規) 監視: Nagios & Cacti & Mu

                                                                ある PHP 案件の振り返り | Carpe Diem
                                                              • PHP Frameworks for Enterprise Applications

                                                                Developing agile software applications seems like a cumbersome task if you are not using a particular framework for doing so. It is not clever to indulge in time consuming and complicated task of building software applications without using any framework. We all want to develop software applications using a framework that can make the development process much faster with the codes and modules and

                                                                  PHP Frameworks for Enterprise Applications
                                                                • ウノウラボ Unoh Labs: PHPでDocTest

                                                                  yamaokaです。 何かソースコードを書いた場合、皆さんはどのようにテストをしていますか? PHPの場合、PHPUnitやSimpleTestを使ってユニットテストをすることが多いと思います。でも、ユニットテストのために新しいファイルを作ってメソッドを実装したりするの、面倒くさくないですか? Pythonには標準でDocTestという仕組みが付いています。詳細はPythonのドキュメント(日本語)を参照してもらうことにして、簡単に言うと、実際のソースコードの中にコメントとしてテストケースを書いてしまおうというアイデアです。 「実際のソースコード=テストケース」になるのですから、メソッドを修整したからテストケースも修整して…という手間が少なくて済みますよね。そうしたDocTestの仕組みを、PHPに移植しようとする試みを紹介します。 rhacoのDocTest rhacoは「PHPのライブ

                                                                  • PHPもやらなきゃJenkins « BEAR Blog

                                                                    改名なのかフォークなのか、とにかくHudsonプロジェクトはHudsonとJenkinsに分かれました。(開発者はフォークではなく改名と主張していて、この辺りの話はinfoQが詳しいようです。http://www.infoq.com/jp/hudson ) ※前回の記事で紹介したphp-hudson-template はphp-jenkins-template に変わっています。 またPHPUnitで有名なSebastian氏がbuld.xmlを自動で作成してくれるPPW (PHP Project Wizard )というツールをリリースして、面倒だったプロジェクトの設定ファイルbuld.xmlの作成がとても簡単になりました。 Sebastian氏はhttp://jenkins-php.org/というPHPでJenkinsを使うためのガイドをするサイトも用意しています。以下はその補足です。

                                                                    • ノーフレームワークのレガシーPHPがCIに乗るまで

                                                                      ついに仕事で触っている PHP のコードがほんの一部のテストとは言え CI に乗った。 正直これは感動ものだ。 今回はここに至るまでの長大な物語をダイジェストでお届けしようと思う。 有史以前PHP 3 で作られた 1 URI : 1 スクリプト + 共通関数 時代 当然のように PHP と HTML と SQL 混在まともなテスト環境がなかったので似た環境をどうにか作るパスとか絶対で埋め込みまくりなのでとりあえず共通のパス情報の変数に差し替えまくりテスト環境用のコードと本番環境用のコードが違うオール目視 つらかった。 みなさんの予想通りバージョン管理なんてものは存在しなかった。 素朴なPHPを徐々にclassにclass になれば phpdoc を書きやすくなるいきなり実行しないようにすればテストしやすくなる これは後から気づいたんだけど、結局フロントはロクに自動テストできてない一時期 p

                                                                      • Selenium WebDriverで、新規会員登録フローのE2Eブラウザテストを自動化してみた。 - ハウテレビジョンブログ

                                                                        どうも。エンジニアの@bumcruです。 Qiitaの「Selenium/Appium」アドベントカレンダー9日目の記事です。 去る10月に行われた開発合宿、今年のテーマは「自動化」でした。 テーマの範囲内で、個々人が自由に好きなものを作るわけですが、 僕が選んだお題は「Seleniumでのブラウザテスト自動化」です。 今回は、Selenium WebDriver *1 の知識がほとんど無い状態から、 2泊3日で弊社の外資就活ドットコムの会員登録フローを自動化するまでの顛末と、 ハマりやすいポイント、その解決法をご紹介します。 基本的には「せれにうむ?」な人に向けた記事なので、すでにSeleniumを十分使いこなせている人は、 「あるあるw」とか「そこはこうした方がいいよ」などのコメントを頂けると幸いですm(_ _)m Webサービスこそ E2Eテストを自動化すべき パッケージ開発や受託開

                                                                          Selenium WebDriverで、新規会員登録フローのE2Eブラウザテストを自動化してみた。 - ハウテレビジョンブログ
                                                                        • フルスタックフレームワークから脱却してマイクロサービスライクにサービスを構築する - Qiita

                                                                          はじめに Ruby on Railsを代表とするフルスタックフレームワークを利用すれば、 手軽にWebサービスの構築を始める事ができます。 しかし、3年あるいはそれ以上続くWebサービスを構築する際は、フルスタックフレームワークを採用するかどうかは慎重に検討する必要があるでしょう。 ケースバイケースではありますが、マイクロサービスの考え方をフレームワーク・ライブラリ構成に応用すると メリットがある可能性があります。 フルスタックフレームワークのデメリット フルスタックフレームワークは、学習コストが高いですが、Webサービス構築に必要なほとんどあらゆる機能を提供しています。 人気のフレームワークであれば、コミュニティも活発なので、わからないこともググれば解決することがほとんどでしょう。 では、フルスタックフレームワークのデメリットとはなんでしょうか? ロックインされる 一番大きなデメリットと

                                                                            フルスタックフレームワークから脱却してマイクロサービスライクにサービスを構築する - Qiita
                                                                          • PHPer が「JUnit実践入門」を読んだ

                                                                            「JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)」を献本して頂いたので読んでみました。 普段は PHPUnit でテストを書いているので、その本家とも言える JUnit の本は興味津津でした。 実は、今でこそ PHP 三昧の日々ですが、数年前(JDK1.3 とか 1.4 の時代ですが)は Java で開発していたこともあったので、いまどきの Java、JUnit がどうなっているか知りたくもあり、興味深く読み進めることができました。 読んでみて感じた点を挙げてみます。 1. 圧倒的なボリューム まず目次をざっと見た時に感じたのがカバーしている範囲の広さです。正直よく一冊に収まってるなあと:D JUnit の解説からはじまり、JUnit を使ったテストの書き方、ソフトウェアテスト・テスト技法、ユニットテストのパターン、そして JUnit のより

                                                                            • PHP 製デプロイツール「Rocketeer」を使ってみた | 株式会社メイプルシステムズ

                                                                              こんにちは。西山です。 毎日続く炎天と夕方に来襲する豪雨で夏らしさが一気に全開になりましたね。 今回はデプロイツール「Rocketeer」についてご紹介したいと思います。 これは GitHub上で公開されているオープンソースソフトウェア (OSS) です。リポジトリは https://github.com/Anahkiasen/rocketeer にあります。ライセンスは MIT です。 デプロイツールというと、以前の現場で Capistrano を使っていたのですが、これは Ruby 製ですね。 Rocketeer は Capistrano に似た構成を持つ PHP 製のソフトウェアです。普段、PHP の案件に関わることが多いのですが、デプロイツールも同じ PHP で書かれていたほうが安心感(?)がありますよね。 また、Composer や PHPUnit の実行にもデフォルトで対応

                                                                                PHP 製デプロイツール「Rocketeer」を使ってみた | 株式会社メイプルシステムズ
                                                                              • 10年開発してきたPHPアプリケーションにPHPStanを導入した - BASEプロダクトチームブログ

                                                                                Tech Dept. 基盤グループエンジニアの @tenkoma です。 BASEには50以上のPHPプロジェクトのプライベートリポジトリがあります。 (アプリケーションは十数個で、残りの多くが、アプリケーションが依存するライブラリです) 過去4年ほどの間に新規に作られたリポジトリにはほぼ最初からPHPStanが導入されていますが、それ以前から開発していたリポジトリには導入されていないものが多数ありました。 それらのリポジトリにPHPStanを導入していったので、なぜ導入したか、導入方法、得られた効果について紹介します。 PHPStanとは PHPコードを実行せずに、実行時にエラーになりうる箇所を検出するツールです。PHPStanを利用しCIに組み込むと、テスト実行せずに検出できるバグの一部は、PHPStan解析で指摘してくれるので、コードレビューの負担が減ることが期待できます。 なぜPH

                                                                                  10年開発してきたPHPアプリケーションにPHPStanを導入した - BASEプロダクトチームブログ
                                                                                • テスト駆動開発(TDD)とは何か。コードで実践方法を解説します - パンダのプログラミングブログ

                                                                                  この記事は、弁護士ドットコム Advent Calendar 2019 - Qiitaの2日目の記事です。 TL;DR TDDの実践方法を実際にコードを書いて解説します TDDの「レッド・グリーン・リファクタリング」のリズムを学ぼう 何度もテストを実行して、プログラムに対する不安を取り除こう TDDはテスト技法ではなく設計手法 TDD Boot Camp Sendai 9thに参加しました。TDDの伝道師和田さん(@t_wada)を講師に迎え、有志たちで開かれた勉強会でした。 午前中は和田さんによるTDDに関する講演とライブコーディング。午後は参加者同士のペアプロで出題されたお題を実装していく活気あるイベントでした。 イベントを通じてTDDはテストファーストのことだと考えていた自分は目を見開かされました。TDDは単にテストファーストでプログラムを実装することではなく、実装(ソフトウェア)が

                                                                                    テスト駆動開発(TDD)とは何か。コードで実践方法を解説します - パンダのプログラミングブログ