PHPROS勉強中-仕事、プライベートでエラーが出たら書いていきます。既存の独自フレームワークに新しい機能を追加する機会があり、DB周りを確認したのですが、PDOをゴリゴリに使っており、サニタイズも独自だったのでせめて追加の部分はライブラリ(Eloquent)を利用して安全にしたいと思いましたが、追加分の為にフィルター系の処理をEloquentで別で作って管理するのは別の題もあるので、PDOは残しつつ、Eloquentを利用しようとおもいます。PDOと別でEloquentでコネクションを作るのはトラブルの元なので、既存処理で接続状態になっているPDOを利用します。'',]);$capsule->setAsGlobal();$capsule->bootEloquent();上記の様にEloquent単体で利用する場合は、Capsuleを初期化してますが今回は既存のPDOがあるので、下記の様にしてMySqlConnectionを生成してEloquentのModelに渡します。Modelでsaveが動きませんでした。EloquentのQueryLogを確認しても問題ないクエリですし、エラーも出ません。save()の戻りもtrue。試しにEloquentのモデル側でconnectionをdefault指定したのですが、queryエラーが出たので、どうやらsetDefaultConnection(0)では更新時には’default’として働かない?ようなので、下記に変更しました。IN)Twilioを利用する必要が出たので、ドキュメントを見ながらAPIなどを確認中いろいろ機能はあるけど、まずは基本の部分を見てみる。LINEボットなどと同様にTwilioのconsoleから着信時にHTTPのWebhookを設定できるので、サーバーにおいてもいいけど、ngrokが楽だよとドキュメントにもあるので、利用してみる。ngrokにアカウント登録して、実行するとngrok.ioのサブドメインへのアクセスを実行してるローカルマシンの8000にフォワードしてくれる。=>)カンファレンスなどでFromを判定したりするには、$_REQUESTのformなどを元にすればいいということか。$text;}PHPでBOM削除で検索すると、自分が前に公開していたJSONから削除する記事が上位に表示され恥ずかしい。https://stackoverflow.com/questions/10290849/how-to-remove-multiple-utf-8-bom-sequences2019.03.24SlimフレームワークでLaravelで有名なEloquentのEvent(self::creating,updating,savingイベント)が動かなかったのを解決できたEloquentはLaravelでなくても便利なのでORMとしてCodeigniterやSlimで利用してますがEloquentのモデルが設定したイベントが呼ばれないので調べてみました。エラーにはならず、普通にORMとして機能するんですけど、イベントが如何せんよばれない。{log出力とかしたい。{log出力とかしたいのに、イベントが呼ばれない。callなどでググったけど、SlimでEloquentとなるとModelの基本しか見つからないのでvendorの中をちゃんと読むことにしました。Illuminate\Database\Eloquent\Model.phpを見るとトレイトにHasEventsってぽいやつがいる。中でイベントが設定されていれば、Dispatcher読んでる。}イベントディスパッチャーはIlluminate\Contracts\Events\Dispatcherか。思いディレクトリを探すと無い。イベント設定してもDispatcher無いじゃん。EventってEloquentが持ってるのかよければ依存で持ってきてると思ったけど。今回はSlimを利用していて、下記のようにDBを読んでいます。"^5.5"},さっそくイベントライブラリを追加します。illuminate/eventsそして、コンテナに入れてるDBにも設定を追加します。最初間違って、setAsGlobalの後にsetEventDispatcherして動かなくて悩みました。$capsule;};これでSlimフレームワークでもEloquentのModelイベントが動くようになりました。Frameworkでsettingsに追加した設定値が$c->get(‘settings’)でnullSlimでTwitterAPIやSessionの設定をsettingsに追加しましたがコンテナに追加する際に、設定値がNullになっていしまう。exit;Nullエラーも特に出てないので、Slimがどうやってsettingsを読んでいるか見てみた。slim/slim/Slim/Collection.php他はgetterなどなんで、フィルターはない。}slim/slim/Slim/Container.phpsettingsが空ならEmptyでCollection作るけどvaluesにはあるけど、userSettingsにはない。$defaultProvider->register($this);}なんてことはなく、settings.phpのsettingsの閉じが意図してなかっただけ。‘twitter’;になってただけだった。methodだよって怒られます。''コードを見てみると、setOptionsはprotectedに変更されています。array())なのでドライバーのインスタンス化の際に指定します。Checkoutを使ってみた-サンドボックスの設定からPHPソースまでその1PayPal決済のExpressCheckoutをPHPで実装するときのメモPayPalのエクスプレスチェックアウトとはECサイトなどからPayPalのサイトを経由してPayPalのクレジットカード決済を利用するための仕組み。チェックアウトは、PayPalアカウントへ事前に登録したクレジットカード番号や配送先情報を使用して決済をおこないます。そのため、購入者はクレジットカード情報を入力することなく、PayPalアカウントにログインし、シンプルな確認および承認作業をおこなうだけで、決済を完了できます。スムーズな決済フローで、かご落ち率の減少に貢献します。PayPalにはサンドボックスというテスト環境が用意されているのでまずは、サンドボックすのアカウントをさくせいします。Accountsを作成します。TypeでBuyer(買い手)、Seller(売り手)を作ることが出来きます。Pro以外の2アカウントがあれば、OKです。Balance:PayPal口座の残高Notes:メモなので、適当に。PayPalのテストアカウントができたら、次はソースコードです。PayPalにはASPやPHP、JAVAなどのソースが公開されていますが、今回はintegrationwizardでPHPのソースコードを作成します。integrationwizardへアクセスして、ウィザードにしたがってソースを作成していきます。https://www.paypal-labs.com/integrationwizard/ecpaypal/main.php今日のところは、ここまでで、くわしくは続きで書きます。