Blogブログ

Category: php

Laravel 5.7 OAuth実装

Laravel5.7でOauth認証を実装します。 https://readouble.com/laravel/5.7/ja/passport.html LaravelではPassportを使うことで、非常に簡単にOAuth2サーバの実装が可能になります。 Passportはleague/oauth2-serverというライブラリ上に構築されています。 cakephpなど他のフレームワークでも利用されており、信頼性の高いライブラリです。 https://oauth2.thephpleague.com/ 実装 インストール composerでインストールします。 composer require laravel/passport Migration client, accessTokenを格納するテーブルを作成します。 これもコマンド打つだけです。 php artisan migrate accessToken生成のため、キーを作成しておきます。 強固なセキュリティにするため重要です。 php artisan passport:install Model Userモデルへ、traitを追加します。 User.php namespace App; use Laravel\Passport\HasApiTokens; use Illuminate\Notifications\Notifiable; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use HasApiTokens, Notifiable; AuthServiceProvider AuthServiceProviderへ、メソッドを追加します。 ここでAccessTokenの発行・失効を管理出来るようになります。 AuthServiceProvider.php public function boot() { […]

Laravel Task List

Laravel Practice Laravelをざっと理解するために、公式サイトの中級TaskListを読んでみました。 https://laravel.com/docs/5.1/quickstart-intermediate 基本的なCRUDに、ログイン機能がついたものです。 なおこのチュートリアルは5.1だったので、5.4に合わせて各所調整しています。 github https://github.com/shnr/laravel_tasklist 目標とする仕様 ユーザ管理の実装 各ユーザーごとのタスクの閲覧が可能 サーバ仕様 PHP 7.2 mysql 5.7 Laravel Version Laravel Framework 5.4.36 インストール composer install https://getcomposer.org/download/ プロジェクトディレクトリを作って、composerをダウンロードします。 $ mkdir myproject-dir $ cd myproject-dir $ php -r “copy(‘https://getcomposer.org/installer’, ‘composer-setup.php’);” $ php -r “if (hash_file(‘SHA384’, ‘composer-setup.php’) === ‘544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061’) { echo ‘Installer verified’; } else { echo ‘Installer corrupt’; […]

WP_CILを使ったWordPress update

sakura vpsに wp_cilを入れる。備忘録 これでターミナルからアップデートが可能になる。 1.ダウンロード curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar 2.確認 php wp-cli.phar –info 3.パスに移動 chmod +x wp-cli.phar sudo mv wp-cli.phar /usr/local/bin/wp 4.確認 wp help これで準備完了。 アップデート 1.バージョンチェック wp core version 2.アップデート wp core update 4.もっかいバージョンチェック wp core version 5.アップデート対象のプラグインチェック wp plugin status 6.プラグインのアップデート wp plugin update plugin_name 7.テーマのチェック wp theme status 8.テーマのアップデート wp theme update plugin_name […]

cakephpでQRコード生成

cakephpでQRコード生成MEMO。 – module Image_QRCode を使います。 download : http://pear.php.net/package/Image_QRCode/download document : https://wiki.php.net/pear/packages/image_qrcode /lib/ ディレクトリ配下に設置します。 入っていない場合は、pearが必要です。 yum -y install php-pear – Controller 今回はGETで渡された数列のIDをQRコード画像にして返します。 Layoutはajax用に設定し、余計なLayoutの表示を防ぎます。 public function get_qr(){ $this->layout = ‘ajax’; $this->set(‘some_url’, ‘http://hogehoge.com’); return; } – view 表示用のviewでライブラリを読み込みます。 require_once APPLIBS . ‘Image_QRCode-0.1.3/Image_QRCode-0.1.3/Image/QRCode.php’; $QR = new Image_QRCode(); $option = array( ‘module_size’ => 4, ‘image_type’ => ‘png’, ‘output_type’ => ‘display’, […]

xampp on MacでMDB2インストール時に遭遇した不具合??

先日インストールしたMDB2を使ってみたところ、早速の不具合が。 調べてみると、こんなエラーメッセージ。 unable to find package ‘MDB2_Driver_mysql’ file ‘MDB2/Driver/mysql.php’ pearをインストールし直して、MDB2_Driver_mysqlを再度インストールすることで上手く動きました。 sudo pear install PEAR sudo pear install MDB2_Driver_mysql

mac osx MDB2 インストール

mac osx MDB2 インストールログです。 ■環境 Max OS 10.9.5 XAMPP 1.8.3 ■手順 1.perl インストール $ sudo php /usr/lib/php/install-pear-nozlib.phar 2.perlパスを通す php.iniでperlパスを指定します。 ・php.ini /Applications/XAMPP/xamppfiles/etc/php.ini 開くと、以下の記述があるので、 include_path = “.:/php/includes” 「:」で区切り、perlインストール時に指定されたパスを追記します。 include_path = “.:/php/includes:/usr/lib/php/pear” 3.MDB2 インストール perlが使える様になったので、MDB2をインストールします。 下記のサイトで最新版が確認できます。 http://pear.php.net/ $ sudo pear install MDB2-2.4.1 3.サンプルプログラムをテスト ここまで来たら、サンプルプログラムをテストできます。 <php? require_once ‘MDB2.php’; $db = “mysqli://username:password@localhost/db_name”; $mdb2 =& MDB2::connect($db); if( PEAR::isError($mdb2) ) { die( $mdb2->getMessage() […]

phpファイル群をajax限定のアクセスにする。

Youtube, vimeoのAPIにアクセスしてサムネイルを取ってくるツールを作った。 http://tools.shnr.net/tg/ このツールを作る中でやりたかった事が、phpファイルを格納しているlibディレクトリは、基本アクセス不可で、ajaxでアクセス必要なファイルだけを許可するという事。 ディレクトリ配下をアクセス不可にするのはhtaccessにこう記載するだけで簡単。 Order Deny,Allow Deny from all ajaxでアクセスさせる場合、php側にisAjax関数を追加した。 参考: http://davidwalsh.name/detect-ajax function isAjax(){ if(!empty($_SERVER[‘HTTP_X_REQUESTED_WITH’]) && strtolower($_SERVER[‘HTTP_X_REQUESTED_WITH’]) == ‘xmlhttprequest’) { return true; } return false; } ajaxでアクセスさせるファイルにはこの判定を加えれば、不要なファイルアクセスが避けれそうだ。

EC CUBEのSmartyのキャッシュ

EC CUBEのSmartyのテンプレートキャッシュをオフにする方法。 ※2.12.2 data/module/Smarty/libs/Smarty.class.php この150行目あたり、$force_compileがデフォルトでfalseになっているが、 var $force_compile   =  true; にする。   こうするとページアクセスの度にキャッシュが生成されるらしい。 開発中はFTPでテンプレファイルをアップする場合もあるので、これが便利。 運用時は必ずfalseにするように。  

Backbone.jsでAPIに渡すときのメモ。

Backbone.jsでAPIに渡すときのメモ。 Backbone.sync とは Backbone.sync とはBackboneがモデルからデータを取得したり保存したりする際に使う関数。 デフォルトでは、jQUery.ajaxを使ってRESTful JSON リクエストを送信し、jqXHRを受け取る。 また、オーバーライドも可能。 —————————- RESTful とは ウェブサービスのひとつの形 ・明示的に HTTP メソッドを使う ・ステートレスにする ・ディレクトリー構造に似た URI を公開する ・XML、JSON (JavaScript Object Notation) のいずれか、またはその両方を転送する jqXHR とは XMLHttpRequestオブジェクトを一般化し、クロスブラウザ対応を行ったjQuery独自のオブジェクト。 —————————- sync()の基本形 sync(method, model, [options]) method – the CRUD method ("create", "read", "update", or "delete") model – the model to be saved (or collection to be read) […]

cakePHP : Auto Loginの実装

cakePHP 2.4 で、Auto Loginを実装した。 その手順をメモ。 まず、使用したコンポーネントはこちら。 http://milesj.me/code/cakephp/auto-login ただしこれは注意書きにあるように、2.Xでは非推奨になっているので、最新版を下からいただく。 http://milesj.me/code/cakephp/utility こちらをダウンロードして、使うのはContoroller/Component/AutoLoginComponent.php。 ※探してみたところ、こちらにアップデートのお知らせがあった。 http://milesj.me/blog/read/upgrading-ajaxhandler-1.6-3 実装の方法は、上のページと変わらない様だ。 1.AppControllerでComponentの追加。 (username => emailとしてるは、認証時のユーザー名をemailしているため。) public $components = array( ‘AutoLogin’, // 追加 ‘Auth’ => array( ‘authenticate’ => array( ‘Form’ => array( ‘fields’ => array(‘username’ => ’email’) ) ), ‘authorize’ => array( ‘Actions’ => array(‘actionPath’ => ‘controllers’) ) ), ‘Session’ ); 2.loginフォーム(僕の場合はuser/login.ctp)にチェックボックスの追加 echo $this->Form->input(‘auto_login’, […]