IT関連

AS400/IBMi 無料で Web化 GUI化 オープン化 PHP/Laravel設定編 2/2

投稿日:2018年9月12日 更新日:

注意

これは私の環境下における私の備忘録です。お使いの環境によっては内容が異なる場合があります。私は何も責任を負いませんのでご了承のうえご覧ください。

 

 

前置き

設定編1/2は無駄すぎました。XAMPPやLaravel自体の設定はググったり本を見ればいくらでも解るので、本編行きます。

ちなみにLaravelの本はこちらを読みました。本を開けば宝の山です。青本は本版とkindle版の両方持っています。

下記の本は最初に勉強しました。これも役立ちました。なんせ繰り返しやることですね。繰り返し繰り返しやらないと覚えません。

フレームワークで開発するなら勉強しないと無理です。私が説明するのはAS400の接続と、使用上の注意くらいです。

続いてLaravelでAS400(DB2)にアクセスする設定を行っていきます。

 

 

参考文献はこちら

GitHub – JacksonWebServices/laravel-iseries: laravel-iseries

この人が作ったみたいです。感謝しております。ただ私の環境では一部手直しをしないと動かなかったので、その修正箇所も含めてなるべく詳しく書きます。

 

composer.jsonファイルに追記します

早速ファイルを触っていきますが、カンマ1つ抜けていれば動きません。というか、同じ環境ではないので動く保証なんてありませんけど、とにかく打ち間違いカンマの洩れとか注意して下さい。見やすいように違いを載せているので、よく位置を確認してコピペして下さい。

 

cmsフォルダ直下にあるcomposer.jsonファイルをテキストエディタで開きます。メモ帳よりTeraPadのようなちゃんとしたエディタの方がいいです。開いたら上の方にあるrequire項目に追記します。

変更前

変更後

一番下に追記しました。requireの中はカンマ区切りなので、1つ上のtinkerの最後にカンマを付けるのを忘れずに。

 

composer updateを行います

コマンドプロンプトを開き、cms(仮称)ディレクトリに移動します。

c:\Users\ユーザ名> cd c:\xampp\htdocs\cms

次に、composer updateを行います。

c:\xampp\htdocs\cms> composer update

以上。コマンドを実行してからの時間は約1分ほど。

これを行うことでAS400(iseries)のデータアクセスを実現するためのプログラム群が導入されます。

ちなみに導入される場所は、cms\vendorの中です。

 

app.phpファイルに追記します

cmsフォルダの中に、configフォルダがあります。その中のapp.phpファイルを開きます。結構下の方にprovidersという項目があります。その最後の方。

変更前

変更後

一番下に1行追加します。

 

database.phpファイルに追記・変更します

cmsフォルダの中にある、configフォルダの中にある、database.phpを開く。

まず一番最初の項目、

変更前

変更後

にする。

 

次に、少しスクロールすると出てくるconnectionsの項目の一番下。

変更前

変更後

sqlsrvの下に、長ったらしいODBC項目を追記するだけです。sqlsrvの項目は場所を解りやすくするため載せているだけなので、変更ありません。

 

ちなみに参考文献と違う箇所は、一番下にあるoptions項目の一番上

PDO::ATTR_CASE => PDO::CASE_LOWER,

をコメントアウトしたところです。これを外しておかないとなぜかView側で表示しようと思ってもできませんでした。

 

さらに余談ですが、フラットなPHP編で導入した際にODBCドライバーを3つ入れたと思います。

今回の、ドライバーの指定は

‘driverName’ => ‘{iSeries Access ODBC Driver}’,

になっていますが、参考文献の人が指定したそのままです。これを、

‘driverName’ => ‘{IBM i Access ODBC Driver}’,

にしても動きます。でも、

‘driverName’ => ‘{Client Access ODBC Driver}’,

ではエラーになって動きませんでした。私は今でもiSeries Access ODBC Driverを指定していますが、問題は起きていません。

 

 

.envファイルに自分の環境を元に追記します

 

cmsフォルダの中に.envファイルがあります。それを開きます。

変更元

変更後

カタカナのところ(3ヶ所)は自分の環境を入力する。

 

サクッとデータベース設定が合ってるか確認する

とりあえずAS400のデータが引っ張れるか確認したいのですが、サクッといっても難しいのです。とりあえずデータベースの情報を取得するコードをコントローラー内に作って、そこにルーティングが向くように設定をします。

 

コントローラーを作ります

コマンドプロンプトを開き、cmsフォルダに移動し(何度もやってるので説明は割愛します)、そこで下記コマンドを実行します。

c:\xampp\htdocs\cms> php artisan make:controller testController

testControllerのCはデカいCです。cではダメです。次の開発編でお話しますが、Laravelはルールに沿った命名規則がありますゆえ、いろいろ面倒なのです。

実行すると、Controller created successfullyと表示されます。

すると、cms\app\Http\Controllersのなかに、testController.phpというのができます。

中身は、

こんな感じです。それを、

こんな感じにします。4行目に追加したuse DB;も忘れずに。ライブラリ名とテーブル名はご自身の環境でテスト的に引っ張りたいものを指定してください。

 

 

ルーティングをtestControllerに向けます

cms\routesのなかに、web.phpというのがあるので、それを開きます。

変更前

 

変更後

最後をこんな感じに変更します。

 

アクセスしてみる

自身のIPアドレスにアクセスして、こんな感じに表示されたら成功。2バイト文字は文字化けしているはずですが、データベースの中身が表示されているはずです。それで正常です。

 

ほぼ手順化しましたが、手順通りとはいえここまでくれば大したもんだと思います。

データさえ引っ張れるようになればこっちのもんなので、後はLaravelを勉強してガンガン開発して慣れるべしです。

 

次はAS400でLaravel開発をするうえで困った点などをまとめた開発編です。

MySQLとAS400(DB2)は勝手が違うので、Laravelで開発するにせよ使い勝手はかなり違います。

AS400を 無料でWeb化 GUI化 オープン化 PHP/Laravel開発編

まあまだ追記したいことはあるので、開発編は更新するつもりです。

 

 

Laravel自体の習得は本などを元に習得してください。私の備忘録はあくまでAS400絡みのLaravelですので。

 

 

そうやってある程度開発できるようになれば、いよいよサーバを構築していきます。

AS400を 無料でWeb化 GUI化 オープン化 Linuxサーバ構築編 1/3

バージョンなどを恐れずに言うと完璧に手順化したつもりです(自分のために)

スポンサーリンク




スポンサーリンク




-IT関連
-, , ,

執筆者:


comment

Your email address will not be published. Required fields are marked *

関連記事

Windows WAN上LAN外の共有フォルダにアクセス

WAN内、ようするに拠点外のPCにアクセスしようと思ったことはないだろうか。 私はあります。   私は情報システム部の人間なので、他の拠点のPCを設定すべくリモートデスクトップをすることがあ …

Windows アンインストールの形跡調査

Windowsはある程度のログを残しているので、イベントや警告やインストールやアンインストールの情報など取ることができる。   やり方は 「Winキー」+「Rキー」を押し 小窓に「perfm …

FTP バッチを作る

自分の備忘録です。間違ってるかもしれませんし大した内容ではありません。   バッチはテキストファイルにPUTやGETなどのコマンドを書いて、それを呼び出すバッチプログラムを拡張子を.batに …

AS400/IBMi サブファイルで入力後にカーソルを下に移動させる SFLCSRPRG

例えばサブファイルの入出力項目が5列あったとして、ユーザがタンタンとエンターキーでカーソルを飛ばして入力していくと、通常は次のカーソルは右に移動する。   これを下に移動させるには、DDSで …

AS400/IBMi Laravel-Excelで文字化けするので文字コードを変換する

Laravel-Excelというのを見つけたので使ってみたのだが、いかんせんAS400だと色々と面倒くさい。   AS400はEBCDICという文字コードらしく、そこからODBCかPDOで引 …

Adsense広告




文字で検索

人気記事

なぜだか人気記事

読んでほしい順に