Nuestra misión es HACERTE CRECER. Brindamos servicios especializados que aportan valor a las empresas líderes del mercado combinando estrategias de marketing y negocio con tecnología digital
Deprecated: Hook custom_css_loaded is deprecated since version jetpack-13.5! Use WordPress Custom CSS instead. Jetpack no longer supports Custom CSS. Read the WordPress.org documentation to learn how to apply custom styles to your site: https://wordpress.org/documentation/article/styles-overview/#applying-custom-css in /home/ho2/hayashikejinan.com/public_html/wp-includes/functions.php on line 6078
こんにちは、中川です。 PHPでの開発中のちょっとしたデバッグに、echo や var_dumpで画面に値を出力して確認することがありますよね。 このデバッグ方法は簡単でいいのですが、出力した配列の値などはパッと見で確認しやすいとは言えませんし、画面の表示内容が崩れたりします。 画面に出力しない方法としては、 error_log関数を使ってapacheログやファイルに出力する方法もありますが、 この場合は、サーバ側にログインしてtailなどでファイル内容を確認する必要がでてきます。 そんなちょっとした問題を解決してくれるツール 「Chrome Logger」をご紹介したいと思います。 Chrome Loggerを使えば、JavaScriptのconsole.logのように、 表示画面には影響を与えないでブラウザのデベロッパコンソールにPHPから値を出力できます。 ■Chrome Logge
GDBで実際の挙動をみて確認する まずPHPを--enable-debugでコンパイルします。 wget http://jp2.php.net/get/php-5.4.14.tar.gz/from/jp1.php.net/mirror -O php-5.4.14.tar.gz tar xfz php-5.4.14.tar.gz cd php-5.4.14 ./configure --disable-all --enable-debug make 次に、gdbでphpバイナリを起動します。(gdbが入ってない場合はyum/aptなどでインストールしてください。) gdb sapi/cli/php 起動したら、print_rにブレークポイントを仕掛けます。 (print_rでなくても他の関数でもよいです。) 組み込み関数にはzif_という接頭辞をつけるという暗黙のルールがあります。 (gdb)
インスタンスが立ち上がったらSSHでサーバーにログインし、パッケージをインストールしていきます。SSHでログインするにはMacなら標準で搭載のターミナル、WindowsならTeraTermのようなフリーソフトを利用します。 まずはサーバーへ接続しましょう ssh -i (鍵のパス) ec2-user@(Public DNS) 鍵のパスは、KeyPairsを作成した際に保存した***.pemというファイルです。それが保存されている場所を指定します。 ec2-userはユーザーIDで、AWSにてSSH接続する際は大体このIDで接続します。 Public DNSはインスタンスを立ち上げた際に割り当てられる言わばURLに当たります。 もし接続した際に下記のようなエラーが出た場合は鍵のパーミッションを変更しないと行けません。 chmod 600 (鍵のパス) 接続できたらsuを利用してroot権限に
先に、「CVE-2008-5814を巡る冒険」にて、CVE-2008-5814脆弱性があるとdisplay_errorsがOnの環境下でXSS脆弱性となる場合があることを説明しました。しかし、display_errorsがOnの環境下ではCVE-2008-5814脆弱性がなくても、XSS脆弱性となる場合がしばしばあります。 これは、display_errorsによるエラーメッセージ表示がHTMLエスケープされていないことが原因です。簡単なサンプルを以下に示します。 <?php ini_set('display_errors', 1); // display_errorsを有効にする $a = array(); // 配列の生成 $index = $_GET['x']; // 配列のインデックスを得る $b = $a[$index]; // 配列の要素にアクセス このスクリプトに、x=<sc
PHPでテストを書くというとPHPUnitがデファクトスタンダードで、次がSimpleTestでしょうか。 以前はインストールも大変でしたが、今となってはcomposer使えば楽ですし、実績もあります。 でも、本当にこの2択でPHPらしい開発ができていますか? たとえば、テストケースのクラスを用意することが前提になります。 ちょっとPHPのコードを書いてテストしたいときもです。 たとえば、以下のようなロジックを書きたいとします。 <?php $users = [ '太郎' => 'male', '花子' => 'female', '一郎' => 'male', ]; // この$usersから男性('male')のものだけを抽出したい $males = [ '太郎' => 'male', '一郎' => 'male', ]; ?> 普通にPHPUnitでTDDでとなると、それなりに面倒です
traitを使って何か作ってみようと思い立ち、読み取り専用の配列を実装してみました。配列として扱いたい(例えばforeachで回したいとか)けど外側からの変更は受け付けたくないというシチュエーションで使えます。 <?php trait ReadOnlyArray { private $items = []; public function offsetGet($key) { if (!array_key_exists($key, $this->items)) { throw new OutOfRangeException(); } return $this->items[$key]; } public function offsetSet($key, $value) { throw new BadMethodCallException(); } public function offset
▼ [PHP][Selenium] PHPUnit と Selenium2 を使ってブラウザベースの自動テストを実行するための最初の一歩的な何かを発表してきた 「(CakePHPとか)PHPのテストについての勉強会」で「PHPUnit + Selenium2 First Step Guide」と題した発表をしてきた。 「First Step Guide」としたのは、これを見ながら「Selenium 環境を整備して、簡単な PHPUnit コードを書く」ところまで実行できるようにしたかったため。 本当は発表よりもハンズオン的にやってみたかった話ではある。 発表資料 https://speakerdeck.com/suzuki/phpunit-plus-selenium2-first-step-guide サンプルコード https://github.com/suzuki/phpunit-se
4. 名前空間を宣言する namespace宣言は必ずコードの先頭に記述すること。 (コメント、改行、スペースは宣言の前に書いてもよい) 名前空間は「」(バックスラッシュ)区切りで階層を構成できる。 <?php namespace HolyExample; //名前空間 ”HolyExample” を宣言 ちなみに、誤っていわゆるBOM付UTF-8でファイルを保存したところ、 こんなエラーで怒られてしまいました。 Fatal error: Namespace declaration statement has to be the very first statement in the script ※BOM付きUTF-8には気をつけて! 5. 名前空間でのクラス定義 名前空間で定義されるクラス/関数/定数は、先頭に名前空間を 付加したものとして解釈される。 namespace HolyEx
2013-03-06 BEAR.Sundayを触ってみた。 リソース指向フレームワークBEAR.SundayのQuick Tourをひと通り実行して簡単なリソースとそれを使うページを作ってみました。BEAR, A resource oriented framework BEAR.Sunday Quick Tour « BEAR Blog リソース 前のバージョンのBEAR.Saturdayの頃はPageリソースはAppリソースとは扱いがちょっと違っていましたが、今回のPageリソースはAppリソースと同じなのかもしれない。共通してBEAR/Resource/AbstructObjectをextendsしているので、リソースの外側で出力をテンプレートに渡すあたりが違うだけでリソース自体は違いが無いようにみえる。 開発者向け機能 前のバージョンであるBEAR.Satudayの頃からブラウザ
このURLのページは表示することが出来ませんでした。 IQサーバー
医学部予備校に通うなら、当然だけど学費を支払う必要があるよね。 でも、学費の相場はどれくらいだと思う?人によって答えは変わると思うけど、実はびっくりするくらい高い! この記事では、そんな医学部予備校の学費に関して詳しく説明していくよ。 医学部予備校の学費はかなり高い まず医学部予備校の具体的な学費だけど、高校生で最低200万円程度は見積もっておいたほうがいい。 もちろん200万円以上かかる所もある。 ここで「高っ!」と思った人は正しい。 塾や大手予備校は年間数十万円で、100万円を超えることはめったに無いからね。 ちなみに、国立医学部の学費も年間数十万円で済む。 そう考えたら、200万円かそれ以上という金額は負担が重い、と考えるべきかもしれない。 もちろん100万円少々で通える医学部予備校もある。 ただ、学費が安い予備校は限られるし、校舎が少ないと通うのも大変だ。 学費で予備校の質の良し悪
皆さん、楽しくテスト書いてますか~~~ 今日は、 rack-legacy を使うことで、 PHP のアプリケーションなのになぜか Ruby のコードでテストできて(受け入れテストのあたりですけど)、そうすると本物の RSpec とかが使えて楽ですよ、と言う話をします。 rack-legacy とは。 まず、 Rack とは、 Ruby 製のウェブアプリケーション(Ruby on Rails、Sinatraなどをご存知かもしれません)とサーバ(Apache/Passenger、NginX、Lighttpdなどなど…)をつなぐ一種の規格です。 Perl や Python にも似たような仕組みがあります。 ここで、 Rack::Legacy というミドルウェアを使うと、他の言語の CGI や、 PHP のアプリケーションが Rack の上で動かせます。 そして、 Rack の上で動くということは
こんにちは、斉藤です。 前々回はTDDというユニットテストを使った開発方法、前回はユニットテスト実行の自動化と、触れてきました。 今回もやっぱりユニットテストについてということで、方法論などをtips形式でお送りします。 * プライベートメソッドのテスト ユニットテストでは、公開されているメソッドを呼び出して実行します。 クラスを書いたことがある方なら知っている通り、プライベートメソッドを外部から呼び出すことは出来ません。 そのため一般的にこれは、避けた方が良いと言われていますが・・・自分はテストしたい派なので、以下の方法をご紹介します。 – パブリックメソッドでプライベートメソッドを呼び出す 一番簡単な方法ですね。 ただしこの場合だと、公開APIと非公開APIの区別が出来なくなってしまいます。 クラスに手を入れることになり、テストのためだけのコードが混じってしまうことがデメリットです。
どうもこんにちは、インフルエンザ明けの nakamura です。寝過ぎて腰痛めたっつーの。 以前は IDE 使ったりもしていましたが、ここ数年 PHP 書く際は Vim を使ってます。Vim に関してはまだまだ初心者から抜け出せてないんですが、PHP 用にやってる設定をいくつか紹介してみたいと思います。こんなのもやっとくと便利だよとかあれば教えて教えてー。 関数名とか補完 Vim には辞書ファイルを読み込んで補完に使える機能があります。ということで、とりあえず PHP 組み込みの関数や定数の辞書ファイルを作りましょう。 作り方は色々あると思いますが、僕はいつも以下のサイトのスクリプトを使わせてもらってます。 Vim で使用する PHP の辞書ファイルを作成するスクリプト - Memo リンク先にも書かれてますが、dict.php をダウンロードしたら以下で組み込みのクラス名、関数名、定数名
全体で数百万行、1ファイル1万行超のPHPファイルも一秒以内で開き、開発していくことのできる大規模開発向けのvim+tmux環境を紹介しようと思います。この設定この環境で半年ぐらい安定して利用できています。(無論そんな1万行あるファイルや数千行で複雑性循環度500超のメソッド作るなよという話もあるんですが、すでに存在する魔獣とは向き合わなければならないのです...) なので数百万行レベルの大規模開発となると重すぎて使えない設定やプラグインもあります。そのようなものはきちんと外してあります(PHPの関数折りたたみ機能、デフォルトのPHPシンタクスハイライト、neocomplcache.vim、ツリーの構成に時間のかかるproject.vimなど)。 基本的にはターミナルエミュレーターとして、macならばiTerm2、windowsならばTeraTermまたはPuttyを利用することを想定して
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く