tanaka's Programming Memo

プログラミングについてのメモ。

PHP

Twigの勉強メモ-SlimPHPで動かす for mac

SlimPHPのテンプレートエンジンとして、Twigを利用する手順をまとめておきます。掲載したコードは Templates - Slim Framework のものを、SlimPHPのSkeletonプロジェクトで動くように書き換えたものです。 SlimPHPプロジェクトの作成 composerはグローバルで…

Twigの勉強メモ-Introduction-

PHP用のテンプレートエンジンであるTwigについての自分向けの勉強メモです。 Introduction - Documentation - Twig - The flexible, fast, and secure PHP template engine Twigは、PHP用の自由度が高く、高速で、安全なテンプレートエンジン 既存のテンプレ…

Sentinel5.2以降でilluminate/support/Str.phpがrandom_bytesでエラー

PHP

Sentinelで認証しようとしたところ、以下のようなエラーが発生しました。 Fatal error: Call to undefined function Illuminate\Support\random_bytes() in /Users/user/project/vendor/illuminate/support/Str.php on line 233原因を調べると、PHP5とPHP7の…

macからPHPでメール送信する(mailtrap.io の設定を追加)

実際にメールを送信する場合 こちらを参考にしました。 ローカル開発でのメール送信の簡単なテクニック(Mac用)|CyberX:エンジニアブログ [Sy] MacからGmailのSMTPサーバ経由でメールを送信できるようにする手順 | Syntax Error. 上記で、macのpostfixで設…

PHPUnit+Seleniumで、ページに要素があるかを確認する方法

(サンプルで " が抜けていたのを修正 2017/2/27)以下に、画面に要素があるかどうかを判断するサンプルコードを示します。 setBrowser('firefox'); $this->setBrowserUrl("http://www.google.co.jp"); } public function testValidElement() { // ページ開始 …

PHP DOMDocumentのloadHTML() ShiftJISでエラー

①などの文字が含まれるHTMLページをDOMDocumentのloadHTML()でDOMにしようとしたところ、以下のようなエラーが発生してしまいました。 DOMDocument::loadHTML(): input conversion failed due to input error, bytes 0x81 0xAE 0xE3 0x81 やりたいことは、Sh…

PHPの認証ライブラリ Sentinel

認証に関する様々な機能を提供してくれるPHPのライブラリ、CARTALYSTの「SENTINEL」をmacのローカル環境で使ってみます。 公式サイト Sentinel Manual :: Cartalyst 概要 以下、公式サイトのINTRODUCTIONの意訳。モダンでフレームワークを選ばないAuthorizat…

SlimPHP:Slim マイクロフレームワークで REST アプリケーションを作成する(5)複数のレスポンス・フォーマットのサポート

前へ IBM developerWorks Slim マイクロフレームワークで REST アプリケーションを作成するを参考に、SlimPHPのスケルトンアプリから作成します。コードはSlimPHP3用に書き換えています。 SlimPHP:Slim マイクロフレームワークで REST アプリケーションを作…

SlimPHP:Slim マイクロフレームワークで REST アプリケーションを作成する(4)認証

前へ | 次へ IBM developerWorks Slim マイクロフレームワークで REST アプリケーションを作成するを参考に、SlimPHPのスケルトンアプリから作成します。コードはSlimPHP3用に書き換えています。 SlimPHP:Slim マイクロフレームワークで REST アプリケーショ…

SlimPHP Dependency Container(従属コンテナ)

SlimPHPの公式サイト Dependency Container - Slim Framework の意訳です。 Slimは、アプリケーションの依存関係の準備、管理、組み込みのために、Dependencyコンテナを利用します。Slimは、コンテナ機能を支援するためにContainer-Interopインターフェース…

SlimPHP:ミドルウェアの使い方

SlimPHPの公式サイトで、ミドルウェアの使い方を確認しました。 公式サイト Middleware - Slim Framework ミドルウェア SlimアプリケーションのRequestとResponseオブジェクトを処理する前後にコードを実行できます。そのコードのことをミドルウェアと呼びま…

SlimPHP:Slim マイクロフレームワークで REST アプリケーションを作成する(3)PUT/DELETE

前へ | 次へ IBM developerWorks Slim マイクロフレームワークで REST アプリケーションを作成するを参考に、SlimPHPのスケルトンアプリから作成します。コードはSlimPHP3用に書き換えています。SlimPHP:Slim マイクロフレームワークで REST アプリケーショ…

SlimPHP:Slim マイクロフレームワークで REST アプリケーションを作成する(2)POST

前へ | 次へ IBM developerWorks Slim マイクロフレームワークで REST アプリケーションを作成するを参考に、SlimPHPのスケルトンアプリから作成します。コードはSlimPHP3用に書き換えています。SlimPHP:Slim マイクロフレームワークで REST アプリケーショ…

SlimPHP:Slim マイクロフレームワークで REST アプリケーションを作成する(1)GET

次へ IBM developerWorks Slim マイクロフレームワークで REST アプリケーションを作成するを参考に、SlimPHPのスケルトンアプリから作成します。コードはSlimPHP3用に書き換えています。 ステップ 1: アプリケーションのディレクトリー構造を作成する / ス…

mac上の開発用apacheでPHPにログ出力させる

PHPのバージョンアップに伴い、warningが多発したため、ログを残すことにしました。以下、設定したことです。 php.ini php.ini を起動(x.xはPHPのバージョンに置き換える) sudo vi /usr/local/etc/php/x.x/php.ini error_reporting を E_ALL に log_errors …

mac OS 10.11 のapacheでimagick(2016/3/9更新)

mac OSを10.11にアップデートしたら、ローカルのapacheでPHPやimagickが動かなくなったので再設定をしました。PHPで実行する際に警告が表示される場合の修正方法を追記しました(2016/3/9)。 Xcodeのバージョンアップ php56-imagickのインストールでXcodeのバ…

さくらインターネットのレンタルサーバーに写真コンバーターをアップロードする時にやったこと(追加2015/7/18)

写真のサイズ、時間を一括調整するツールをさくらインターネットにアップロードした時に発生したエラーをメモ。 フォルダーの属性を700にする 実行属性がないとPHPからフォルダーが作成できない。 imagickの有効化 php.iniの設定ファイルに以下を追加して、I…

phpunit.xmlファイルでグループを指定する

実行する対象のテストを、@groupアノテーションで設定したグループで指定するphpunit.xmlファイルの書き方です。sampleTestという名前で、phpunit.xmlと同じ場所にあるtestファイルのうち、targetGroupという名前を設定したグループのみをテストするには、以…

mac OS X 10.10 のPHPでPELを使ってEXIFを書き換える

PHP

ImagickのsetPropertyで書き換えて、writeFileでファイルに出力すればよいかと思いましたが、やってみるとダメでした。setPropertyで書き換えた内容はファイルへの保存には反映しないようです。そこで、PHPでEXIFをいじるためのライブラリであるPELを導入し…

PHPUnitによるデータベース操作のテスト

ユーザーを管理する操作をテスト駆動開発の手法で作ってみるために調査しました。PHPUnit マニュアル – 第8章 データベースのテストデータベースのテストにはPHPUnit_Extensions_Database_TestCaseを継承して行うとあります。その場合はSeleniumとの同時テス…

OS X 10.11でApache、PHP、MySQL、SSLを動かす

OS X 10.10から10.11にアップした時も、apacheの設定がリセットされるため、以下の作業が必要。前提として、以下でOS X 10.9の環境がセットアップされていたものとする。OS X 10.9にApache+PHP+MySQLをインストール - tanaka's Programming Memo httpd.conf …

PHPUnit_Seleniumでスクリーンショット(動作確認)

画面のレンダリングが成功しているかを確認するために、必要な場面でスクリーンショットを保存したい。 方法 $this->currentScreenshot()でPNG画像を文字列化したものが得られる。 $this->currentScreenshot()の文字列を、PHPのfile_put_contents()関数を使…

PHPUnit_Selenium 書籍のJavaのサンプルをPHPUnitで書く

実践 Selenium WebDriver作者: Satya Avasarala,Sky株式会社玉川竜司出版社/メーカー: オライリージャパン発売日: 2014/09/18メディア: 大型本この商品を含むブログ (5件) を見るとても分かりやすい良書。JavaからWebDriverを操作する方法がすらすら分かる。…

Selenium+PHPUnit(2016/5/22修正)

PHPUnitとSeleniumを連携させて、サーバーやブラウザ上で動作テストができるようにする。資料はPHPUnitの公式サイトにあるので、それに従ってmac上にPHPUnit+Seleniumの環境を構築して動かす。(2016/3/7時点の最新の情報に修正しました) 情報源 PHPUnit マニ…

PHPUnitを使ったテスト駆動開発(TDD)

TDDとは、プログラムを開発する際に、入出力の動作を決めて、先にテストプログラムを用意してから実際のプログラムを開発する手法。データベースから取得したレコードをシリアライズして、指定のファイル名に保存するという簡単な機能を実装するのをTDD的な…

macでPHPUnit

PHPのテスト用のフレームワークPHPUnitを使って、mac環境でサーバの動作テストを構築したい。公式サイト:PHPUnit – The PHP Testing Framework インストール Xcodeを起動しておく 事前に、Xcodeのセットアップを終えている必要がある。Xcodeを起動して、規約…

phpMyAdminのパスフレーズのエラーを解決する

「設定ファイルが秘密のパスフレーズを必要とするようになりました」というエラーが表示されていた。以下に従って、config.inc.phpに記載されている以下の行の文字列を適当に書き換えるとエラーは消えた。 $cfg['blowfish_secret'] = 'a8b7c6d'; /* YOU MUST…

さくらインターネットでのファイル内からの文字列検索

サーバ上にある日本語のファイルを読み込んで、一部の文字列を切り出す処理が、ローカル環境では動作したが、さくらインターネットにアップしたところ動作しなかった。原因はエンコードの指定が不十分だったこと。ローカルで動作したため、mb_language()とmb…

JavaScriptを使ったファイルのサーバへのアップロード

参考URL JavaScriptプログラミング講座【ファイルをアップロードする】 FormDataの作り方を参考。 FormData オブジェクトの利用 - Web developer guide | MDN jQueryからのFormDataの送り方を参考。 $.post() | jQuery 1.9 日本語リファレンス | js STUDIO j…

PHPから日本語のメール送信

PHP

mb_send_mail()を利用。 以下、PHPの内部エンコードがUTF-8のサーバから、日本語のメールを投げるサンプル。送信元に日本語の名前を設定する。 mb_language("Japanese"); mb_internal_encoding("UTF-8"); if (mb_send_mail( "送信先のアドレス", "件名", "本…