に投稿 コメントを残す

方 南町 パチンコk8 カジノPHPでデータベースを使う準備をする仮想通貨カジノパチンコ三洋 パチンコ 閉店

方 南町 パチンコk8 カジノPHPでデータベースを使う準備をする仮想通貨カジノパチンコ三洋 パチンコ 閉店

方 南町 パチンコk8 カジノPHPでデータベースを使う準備をする仮想通貨カジノパチンコ三洋 パチンコ 閉店

ほ の う の しょう ぼう たい 漫画k8 カジノ 多様なDBMSを同じ方法で操作できるようにする抽象化レイヤ

パチンコ abc cm 出演 者 第28回から、一般に使用頻度の高いPHPエクステンションを使えるようにしていく作業を続けています。文字列処理、XML処理、そしてコマンドライン版のPHPのインタラクティブシェルといった機能を有効にするためのエクステンションについて解説してきました。今回はデータベース関連のエクステンションを有効にして、データベースを使う準備をします。

 PHPではさまざまなデータベース管理システム(DBMS)を利用できます。その利用方法は大きく2つに分けられます。それぞれのDBMS向けのクライアントライブラリをそのままPHPで使う方法と、DBMSの機能を抽象化したものを扱う方法です。PHPのドキュメントを見ると、以上に挙げた2つの項目に分かれています(図1)。

図1 PHPドキュメントのデータベースサポートの目次。抽象化レイヤと、ベンダ固有のモジュールに分かれている図1 PHPドキュメントのデータベースサポートの目次。抽象化レイヤと、ベンダ固有のモジュールに分かれている

 DBMSの機能を抽象化するメリットとしては、DBMSが変わっても同じように扱えるという点が挙げられます。共通の操作インターフェイスを通して、それぞれのDBMSを操作できるのです。この共通の操作インターフェイスを抽象化レイヤと呼びます(図2)。いわば、さまざまなDBMSの操作法の最大公約数のようなものです。

図2 抽象化レイヤとアプリケーション、各データベースクライアントライブラリの関係図2 抽象化レイヤとアプリケーション、各データベースクライアントライブラリの関係

 こうすることで、特定のDBMSに依存しないアプリケーションを作成できるようになります。ただし、抽象化レイヤを経由すると、DBMSのすべての機能を使えなくなる可能性があります。抽象化レイヤを使わないと、アプリケーションが特定のDBMSに依存することになりますが、クライアントライブラリ固有の機能をすべて使えるというメリットがあります。

 PHPではこの抽象化レイヤとして、PHP Data Objects(PDO)、Open Database Connectivity(ODBC)、DBAの3種類があります。このうちDBAはいわゆるリレーショナルデータベースで使うものではないので、解説は次回以降とします。PDOとODBCは同じようなエクステンションに見えますが、ODBCの方はPHP以外の言語でも使える、汎用的な抽象化レイヤです。

 PDOはPHPの内部で抽象化を実現していますが、ODBCのほうはPHPでは抽象化は行いません。ODBCのライブラリで抽象化を行っています。PHPを使うLAMP環境ではPDOを使うことが多いと思いますので、ODBCについての解説は省略します。ODBCはマイクロソフトが策定したものであり、主にWindows上で使うものです。

 PDOを使うには、PDOエクステンションと各データベースのクライアントライブラリを橋渡しするドライバが必要です。ドライバはPDOの一部としてPHPに同梱されています。有名なDBMSなら大体の場合、PDOを利用できます。一方、ドライバが存在しない場合は、そのDBMSではPDOは利用できません。configureスクリプトのヘルプでPDO関連のオプションを見れば、対応しているDBMSが分かります。

個々のDBMSに向けたエクステンション

 前述の通り、抽象化レイヤに対応DBMSを組み合わせる方法とは別に、個々のDBMS向けのエクステンションがあります。これらのエクステンションを使うには、それぞれのDBMSのクライアントライブラリが必要です。

 本連載はLAMPのMに当たるMySQLをターゲットとしていますので、MySQLのエクステンションを有効にしなければなりません。しかしそれには、MySQLのクライアントライブラリが必要です。一般に、DBMSのクライアントライブラリを使うには、DBMSをインストールしなければなりません。つまり、PHPの前にDBMSをビルド、インストールしておく必要があるということになります。ただし、2つ例外があります。SQLiteとMySQLです。

 SQLiteはサーバを必要としない、アプリケーション組み込み型DBMSで、PHPに付属しています。ビルドするのに外部ソフトウェアが必要になることはありません。ただし、Apache HTTP Server(以下Apache)にもSQLiteを組み込むことができるということに注意してください。その場合、その場合、PHPに付属するSQLiteは使わず、Apacheがリンクしているのと同じライブラリを使わなければなりません。第28回で解説したPCREと同じですね。なお、SQLiteのエクステンションは標準で有効なので、同梱のものを使うなら特にconfigureスクリプトで指定する必要はありません。

 そして2つ目の例外であるMySQLです。mysqlndというクライアントライブラリがPHPに付属しているのです。mysqlndはMySQL Native Driverの略です。これは本来のMySQLのクライアントライブラリとは別物で、PHPに特化したクライアントライブラリです。従って、MySQLをインストールしていない状態でもMySQLのエクステンションを有効にできます。なおかつ処理性能も優れているので、PHPの次のバージョンである5.4からはmysqlndがMySQL向けの標準クライアントライブラリとなる予定です。

 PHPのMySQLエクステンションには注意すべき点がもう1つあります。エクステンションが2つあるのです。1つは元からあるもの、もう1つは改良版です。後者はmysqliというエクステンションです。ここでは両方ビルドすることにします。

 MySQLエクステンションを有効にするには「–with-mysql」、mysqliエクステンションは「–with-mysqli」を指定します。さらにややこしいことに、それぞれ「=」の後に指定する内容が異なります。前者はMySQLのインストールディレクトリ、後者はMySQLの設定スクリプトを指定するのです。

 仮に、MySQLを「/opt/mysql-5.5.17」にインストールしてあるとすると、configureの引数は次のようになります。

(略) –with-mysql=/opt/mysql-5.5.17 \ –with-mysqli=/opt/mysql-5.5.17/bin/mysql_config \(略)

 この例はMySQL本来のクライアントライブラリを使う場合ですが、前述のmysqlndを使うには、次のようにします。

(略) –with-mysql=mysqlnd \ –with-mysqli=mysqlnd \(略)PDOを有効にする

 次にPDOの設定です。PDOそのものは標準で使えるようになっています。PDOの各データベース用ドライバを有効にすれば準備完了です。なお、前述のSQLiteのPDOドライバはSQLiteエクステンションと同様、標準で有効になっています。

 PDOのMySQLドライバは「–with-pdo-mysql」で有効にします。指定するのはインストールディレクトリになります。また、ここでもmysqlndを指定することもできます。MySQLに関連するエクステンションがいろいろ登場したので整理すると、図3のようになります。

図3 MySQLのエクステンションやドライバの関係図3 MySQLのエクステンションやドライバの関係

 ほかのDBMSに向けたエクステンションに比べるといろいろあって複雑ですが、PHPとMySQLは最もよく使う組み合わせです。互換性を維持しつつ積極的な改善を進めた結果、このようになったわけです。現実的な実用性を優先するPHPらしい部分です。

MySQLエクステンションのためにzlibを有効にする

 configureスクリプトのヘルプを参照すると、MySQLエクステンションを使うにはzlibが必要であることが分かります。zlibは第15回でも説明した、圧縮のためのライブラリです。

 また、zlibを使うためのzlibエクステンションというものもあります。ここでこのエクステンションを有効にしておきます。

 zlibエクステンションは「–with-zlib」、zlibの場所は「–with-zlib-dir」で指定します。zlibライブラリはApacheをビルドしたときにインストールが済んでいるはずです。

まとめると結局こうなる!

 ここまでの内容をまとめましょう。ApacheとPHPが必要とする外部ソフトウェアのOSパッケージをインストールするコマンドは次のようになります。1行目がApacheのビルドに必要なもの、2行目は第28回の内容、3行目は第29回の内容です。今回は新たに追加したパッケージはありません。

$ sudo yum install zlib-devel openssl-devel db4-devel pcre-devel$ sudo yum install libicu-devel gettext-devel$ sudo yum install readline-devel libxml2-devel libxslt-devel

 PHPのconfigureスクリプトのコマンドラインは以下の通りになります。

./configure \ –prefix=/opt/php-5.3.8 \ –with-apxs2=/opt/apache-httpd-2.2.21/bin/apxs \ –enable-mbstring \ –enable-intl \ –with-icu-dir=/usr \ –with-gettext=/usr \ –with-pcre-regex=/usr \ –with-pcre-dir=/usr \ –with-readline=/usr \ –with-libxml-dir=/usr/bin/xml2-config \ –enable-soap \ –enable-wddx \ –with-xmlrpc \ –with-xsl=/usr \ –with-mysql=mysqlnd \ –with-mysqli=mysqlnd \ –with-pdo-mysql=mysqlnd \ –with-zlib=/usr \ –with-zlib-dir=/usr \ 2>&1 | tee configure_log.txt

 次回も引き続き、よく使うエクステンションについて解説していきます。

著者紹介

株式会社イメージズ・アンド・ワーズ代表取締役山口晴広(やまぐち はるひろ)

「次回」へ

「仕事で使える魔法のLAMP」バックナンバー CMakeでMySQLをビルドしてみるMySQLのビルドに欠かせないCMakeを準備するいよいよMySQL編、ソースからビルドすべきか?PHPでセッションを利用するための設定クライアントがアクセスできる範囲を制限するエラーメッセージをどう扱うか?ファイルのアップロードを制限するリクエストデータを受け取る変数の扱いマジッククオート機能には頼らない安全を考えてPHPの実行時設定を調整するApacheの設定ファイルでPHPの設定を変えるPHPの設定ファイルを作って配置してみるPHPスクリプトを実行できるようにする準備PHPエクステンション組み込みの仕上げ単純なデータを管理するDBMを使えるようにするエクステンションの組み込み状況を確認するPHPでデータベースを使う準備をするXMLを処理できるようにするエクステンションを有効にしてビルドに挑戦!PHPテスト失敗の原因を追究する早速PHPをビルド! そしてテスト!PHP編に突入! まずはソースをダウンロード設定ファイルを作成してApacheを動作させる設定ファイルや公開ドキュメントの配置を考える1つのサーバに複数の仮想サーバ?Apacheの設定ファイルを記述する前にサードパーティのApacheモジュールをビルドする認証DBにアクセスするライブラリを組み込むApache同梱ソフトウェアに引数を渡してビルドOpenSSLをビルドしてApacheで利用するproxyやsslのモジュールを使ってみるライブラリが足りなくてビルドできないときは?Apache HTTP Serverのビルドを始めようconfigureでソフトウェア固有の設定を変更してみるconfigureの設定を変更してみる配布パッケージの中身と、configureの役目を知るダウンロードファイルが真正なものであるかを確認Makefileをいろいろ書き換えながらビルドしてみようmakeを使ってソフトウェアをビルドしてみようダイナミックリンクとスタティックリンク「ビルド」という作業は何を指しているのか公開鍵認証でsshを安全に使うsshを便利にする公開鍵暗号アクセス制限の設定とCentOSのアップデートサーバに接続して、一般ユーザーのアカウントを作るLAMP環境、自分で作りませんか?仮想通貨カジノパチンコaupay チャージ ポイント クレジット カード

に投稿 コメントを残す

ベラジョンカジノk8 カジノこれぞ本命! モトローラ製Android Wear搭載スマートウォッチ「Moto 360」開封リポート仮想通貨カジノパチンコ衣笠 夢 宮殿

ベラジョンカジノk8 カジノこれぞ本命! モトローラ製Android Wear搭載スマートウォッチ「Moto 360」開封リポート仮想通貨カジノパチンコ衣笠 夢 宮殿

ベラジョンカジノk8 カジノこれぞ本命! モトローラ製Android Wear搭載スマートウォッチ「Moto 360」開封リポート仮想通貨カジノパチンコ衣笠 夢 宮殿

ほ の う の しょう ぼう たい 漫画k8 カジノ

パチスロ 鬱台 ご無沙汰しております、ドリキンです。

 日本ではまだ発売が未定ですが、USでは一足お先に発売され、筆者もGoogle I/O 2014の参加者特典としてゲットしたAndroid Wear搭載スマートウォッチ「Moto 360」。少し時間がたってしまいましたが、開封してデザインをチェックしてみました。

パッケージを開けてみたphoto

 まずはお約束のパッケージから。パッケージは円筒状の筒型デザインです。上ブタが白で、下の箱が黒のツートンカラーになっています(ちなみにシルバーモデルの下箱はグレーになっていて、どちらのモデルかを箱から簡単に判断できるようになっていました)。

photo

 なぜか、上ブタの背面側にはリボンが付いていて、尻尾のようなデザインになってます。特にこのリボンがフタを開けやすくしてるわけでもないので、お店でつるしてディスプレイする用のリボンですかね?

photo

 パッケージを裏から見るとこんな感じです。箱と上ブタを止める機構があるわけではないので、ガッツリ3箇所テープで上ブタが固定されています。

photo

 いざ御開帳!

 フタを開けるとまず時計本体が出てくる2段式のパッケージになっています。ここらへんは、今時のパッケージという感じで特に変わったところはないですが、上ブタに時計ディスプレイ部分にフィットするようにクッションが設置されていて、傷が付かないように気遣いされてるあたりには、モトローラの丁寧さが伝わってきて好感が持てます。

photophoto

 Moto 360本体が収納された上ブタを取り外すと、下段からは、充電器やマニュアルなどのアクセサリーが出てきます。

photo付属しているアクセサリーは?

 次はアクセサリーです。

 基本的に、Moto 360のパッケージに含まれているのは、時計本体、充電用のMicro USBケーブル直結のACアダプター、充電クレードルの3点です。

photo

 クレードルは写真のようなシンプルで、角の取れた椅子のようなデザインになっていて、Moto 360本体と電磁誘導方式の無接点型充電で充電することが可能です。

 前面からパッと見ると、ボタンやインジゲータも何もないシンプルで洗練されたデザインで質感が高いです。

photo

 背面から見ると、底部にMicro USB端子が備わっていて、ここに付属のACアダプターを差し込むことで給電します。

 もちろん付属以外のMicro USB経由でも充電することは可能ですが、Moto 360本体にはUSB端子が備わってないので、必ず充電はこのクレードルを経由する必要があります。

photo

 クレードル本体を前面から見ると何もないと書きましたが、実は底面からのぞくと、前面底部に小さなLEDインジゲーターがあります。

 このインジゲーターで充電状態などが確認することができますが、インジゲーター自体が小さいだけでなく、LEDライトの輝度が低いので、意識して確認しないと充電しているかどうか分かりにくいです。

 極限までシンプルで目立たないデザインを目指したという感じでしょうか。

photo

 ACアダプター自体は特筆するところもない普通のMicro USB形式のものです。よくあるケーブルとアダプター本体が分離できるタイプではなく、一体型のアダプターとなっています。

photo

 最後の付属品は2つの紙マニュアルです。1つはクイックスタートアップマニュアルで、もう1つが保証やFCC認可などが記載されたマニュアルです。

 この手のワールドワイドで発売が予定されているデバイスでは、マニュアルは多言語化されたドキュメントが同梱されているのが一般的ですが、Moto 360の場合、英語版のドキュメントだけというのはちょっと珍しいなと思いました(US限定発売でも最低限スペイン語などのマニュアルが付属されているのが普通なので)。

photophoto円形ディスプレイが美しいMoto 360本体

 お待たせしました。いよいよMoto 360本体について見ていきましょう。

 まず、上ブタに格納されているMoto 360本体を取り出すと、液晶には保護シート、ベルト部分には型崩れしないためのスペーサーが装着されていることが確認できます。

photo

 時計部分を正面から見ると非常にシンプルで、洗練されたデザインとなっています。

 Moto 360が非常に注目を集めた1つの理由は、従来のスマートウォッチが液晶ディスプレイに合わせて四角いデザインを採用していたのに反して、円形の液晶を採用したことです。

 円形ディスプレイを採用することで、美しく、かつ従来の時計に非常に近いデザインを実現しています。だた、よく見ると円形ディスプレイの底部が黒くカットされています。実は、Moto 360の液晶ディスプレイは完全な円形ではなく、底部が若干削れています。もちろんこの部分は何も表示することができないデッドエリアになってしまいます。

 実際に手にする前は、この制約がちょっと気になっていましたが、実際に使ってみると、全くといっていいレベルで問題はありませんし、特にデザイン的にダサいとか気になるとかいうこともありませんでした。

photo

 本体を裏返してみると、背面中央部にセンサーのような物が確認できます。これは心拍数センサーで、Moto 360の場合、Android Wearで一般的な歩数計だけでなく、心拍計が備わっています。定期的に心拍数を計測して一日の活動量を3段階で計測してくれます。

 裏面の仕上りもとてもスムーズで、腕に装着していて違和感を覚えることもありません。

photo

 さらに、側面は正面から見て右側にゴールドのリングで縁取りされた竜頭が備わっています。液晶部分のタッチパネルを除けば、これが唯一Moto 360に備わった物理キーです。

 竜頭といっても回せるわけではなく、押すだけの最低限のボタンとなっていて、クリックすると強制的に画面をオン/オフすることができます。また、長押しすることで本体設定を呼び出せます。

 ちなみに、普段Moto 360を利用するときは、この竜頭はほとんど使うことはありません。Moto 360(ほかのAndroid Wearのスマートウォッチも)はモーションセンサーを内蔵しているので、時計を見るという動作を検知すると自動的に画面がオンになります。また腕を下ろせば自動的に画面が消えることで、バッテリーの消費を抑えられます。

 これにより、普段使っているときに、明示的に竜頭のスイッチで画面をオン/オフする必要はないどころか、むしろ意図せず動作して設定画面を開いてしまうことがあったりして、もうちょっと突起を減らしてくれてもよかったのでは? と思いました。

photo関連キーワードMoto 360 | ACアダプタ | Android Wear | スマートウォッチ | 腕時計 | Motorola(モトローラ) | Google I/O充電クレードルに装着してみた仮想通貨カジノパチンコ東北 新人 ラグビー