hello foo bar Saba notePHPのコメント
Category "Laravel5"を表示しています。
2017.6.15 木
/** * [区分]クラスの概要 * * クラスの詳細 * 出来るだけ細かく書いたほうがよいが、詳細な説明は各メソッドに任せる。 * 全体での共通ルールとか仕様を書く。 * * @access アクセスレベル * @author 名前 <メールアドレス> * @copyright 会社名 All Rights Reserved * @category カテゴリー(処理系) * @package パッケージ(MVC) */ /** * [API]メッセージ送信系APIコントローラークラス * * メッセージ送信に関するAPIをまとめたコントローラークラス。 * エンドポイント単位でメソッドを定義する。 * * @access public * @author itosho <...
2017.6.5 月
isset()は謎が多い。 PHP Fatal error: Cannot use isset() on the result of an expression (you can use "null !== expression" instead) in ~ とにかく何を評価しているんだか全然わからないです。ちなみにエラーにある”null !== $xxx”もさほど使えません。 isset()の代用として!empty()がまだ使えそうです。 if (isset($xxxx)) {.... 改め if (!empty($xxxx)) {.... という感じですかね。 PHPのissetの罠 PHP 定数の有無を確認したい。
2017.5.29 月
まずはリポジトリ関連 yum -y install epel-release rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm PHPをインストール yum -y install --enablerepo=remi-php72 php php-cli php-common php-devel php-fpm php-gd php-mbstring php-mysqlnd php-pdo php-pear php-pecl-apcu php-soap php-xml php-xmlrpc php-bcmath php-mcrypt php-imap php-intl php-pgsql これでいつも使うやつ...
2017.5.3 水
WEBサーバーの冗長化にともなってMemcachedやRedisでセッション管理が人気ですが、ここではDBでセッション管理をする方法です。Laravelはとても簡単に設定できました。(少なくともCakePHP3よりかなり簡単に設定できます。) もともとartisanにDBのセッション管理のマイグレーションが設定されているので、.envのパラメータを1つ変更してマイグレーションを行うだけです。 Laravelはデフォルトではセッションドライバーはfileでセットされています。セッションを活性化させるとstrage/framework/session/*に各セッションファイルが生成されます。これをDBにインサートして管理します。 .envの設定 セッションドライバーをdatabaseに設定します...
2017.4.23 日
いろいろなルーティングの方法があって、ここらがLaravel5というかフレームワークの真髄かなと。 Lravel5の最初の1ページの理解ができたら、ここらは殆どその応用みたいなものなのでそんな難しいもんじゃないです。 httpの難しい話になると、GET,POST,PUT,DELETEということになりますが、正直開発している人間として言わせてもらうとPUTとDELETEは基本的なルーティングにあるようなRoute::put, Route::deleteは正直使った試しがありません。いわゆる動詞として100%使うのが、 Route::get(); Route::post(); の2つになります。なのでここだけ詳しくやります。 ルーティングにパラメータを渡す ルーティングにパラメータを渡す 例によ...
2017.4.23 日
Windows MINGW64でphpを使うの続きです。 Localのコンソールが何であるかによってちょっと変わりますが基本は同じです。私はMINGW64使っておりますのでここでもその想定で。 xamppのphpパス xamppをインストールしたばかりだとデフォルトでcliはフルパスじゃないと使えません。 /c/xampp/php/php.exe -v PHP 5.6.19 (cli) (built: Mar 2 2016 20:08:35) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies こんな感じでCLIとして使えます。しかしこれではかな...
2017.4.21 金
LolipopにSSHログインしたらコンソールから cd /usr/local ls -al とやると一応使える言語がいろいろと出てくるので確認してみてください。 rootなのでlsしかできないですのが、ここらに使えるものが揃っています。 php5.3 php5.4 php5.5 php5.6 php7.1 php7を使いたい場合は、 /usr/local/php7.1/bin/php -v こんな感じでフルパスで指定してやると使えます。
2017.4.19 水
正規表現をつかえると便利だけど、正規表現を妄りに使うとほんと厄介なことになるので皆さん注意してください。正規表現を多用したがる人は正直いって大きなプロジェクトに全然向いてない。 メールアドレスの正規表現 もうこれでいいか。 /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/ いろいろなやつ “./aa”や”./09″などの二桁文字列形式にマッチ。ディレクトリとか。 ./[a-zA-Z0-9]{2}$ “VALUE”という文字列をを含まない行にマッチ ^(?!.*VALUE).+$ 半角・全角スペースの連続 無駄スペースとかを...
2017.4.16 日
PHP5.4以降からビルトインサーバーが使えます。PHP5.4がインストールされているなら、XAMPPとかApacheとか設定しなくても簡易的なWEBサーバーをその場限りで立ち上げて使えます。大規模な開発は無理だけど結構なかなか使えるので皆さん使ってください。 $ cd ~/[DocumentRootにしたいディレクトリ] $ php -S localhost:8000 コツは使ってないポート指定することです。 このままブラウザーを立ち上げてhttp://localhost:8000/にアクセスするともうWEBサーバーになってます。とはいえ、このサーバーってApache何でしょうか。nginxなんでしょうか。 またhostsファイルに適当なドメインを設定しておけば、localhost以外でも...
2017.3.22 水
PHPのif文をHTMLの中で書く方法 PHPのif文をHTMLの中で書く方法は稀に必要だけど、基本使わないのですぐ忘れる。こんな書き方できるの知らなかったですよ。なんかMTタグみたいなだな。 <?php if ($hoge == 'xxxx') : ?> ここにif文が通った時のHTMLを書く <?php elseif ($hoge == 'yyyy'): ?> elseifの場合のHTMLをここに書く <?php else : ?> elseの場合のHTMLを書く <?php endif; ?> 意味としては以下のコードと同じみたいです。 <?php if ($hoge=='xxxx') { print 'ここにif文が通った時のHT...
2017.3.14 火
Apacheの権威みたいになってきて気持ち悪いことになってきたので、nginx派になろうとして、nginxでphpを設定するときにphp-fpmでハマる。 socketがない 2017/03/14 19:49:50 [crit] 1224#1224: *8 connect() to unix:/var/run/php-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 123.456.789.000, server: www.example.com, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/v...
2017.3.14 火
$_POSTで受け取ることも勿論できるのですが、Symfony2を使っているのだったら使わない方がよいです。 リクエストのコンポーネントをよんで$requestから該当のポスト値を取得します。ポスト値はprotected(だったと思う)なので、いわゆるゲッター・セッターで取り出すという段取りになります。 namespace fooBundle\Controller; use Symfony\Component\HttpFoundation\Request; class barController extends Controller { public function indexAction(Request $request) { $foobar = $request->get('fo...
2017.3.10 金
結局xamppとかApacheとか入れないとPHPは使えないので作業が楽な方のxamppで。コマンド使うときは直接PHPを起動するといいみたい。 $ /c/xampp/php/php.exe -v PHP 5.6.19 (cli) (built: Mar 2 2016 20:08:35) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies 普通に動いた。 $ /c/xampp/php/php.exe bin/console list Symfony2のコマンドも普通に動いた。
2017.3.8 水
Imagemagickで/tmpにいきなり40GB以上のファイルが作成されるという問題。magick-*というディレクトリ名で生成されます。これdiskサイズとか全く関係なくてImagemagickが予期せぬエラーで異常終了した際に作業中のファイルの残骸を/tmpに投げ捨てるというものです。 処理能力を大きく上回る大きさの画像などを処理した際に起きることが多いので(故に残骸がファイルが数GBになってしまう模様です。)Imagemagickの例外処理を加えるのが正しい処理。 identify -list resourceというコマンドを叩くとDiskの部分がこれらファイルのサイズの制限のようです。私の環境ではunlimitedだったので制限がないという状態なのだと思います。 # identif...
2017.3.4 土
Imagemagickで解像度を変更しようと思ったらわりと巷に出ているコマンドはうまくいってくれなかったのですが、以下のコマンドでいけました。 convert aaa.png -density 300 -units PixelsPerInch bbb.png -densityでper/inchの解像度を設定します。何も設定しない場合は72/dpiになります。 phpの中でオブジェクト使ってやるとき 300dpi/inchで設定したいときは、 $dpi = 300 / 2.54; $obimg->setImageResolution($dpi, $dpi); setImageResolutionは1cmでの解像度になってしまうため通常のinchの解像度にするには2.54の近似値で割ってや...
2017.1.13 金
プログラミングをやっていると殆どの仕様に時間云々が入ってくるのですが、むかしのプログラミング言語(という言い方もおかしいですが)エポック秒に換算して比較計算なんてことになっていて比較的面倒な作業でしたがphpは楽ですよ。strtotime()という関数がそこらあたりをまとめてやってくれるのです。 日付で比較する $dtobj = new DateTime(); $dtobj->setTimeZone(new DateTimeZone('Asia/Tokyo')); $today = $dtobj->format('Y-m-d'); $target_day = '2015-06-07'; // 日付を比較 if (strtotime($target_day) > strtot...
2017.1.4 水
改行コード Windows環境:CRLF Linux環境:LF “(ダブルクォート)が文字列の中にある場合 CSVのフィールド内に「”」を記述する場合は、「””」のように「”」を並べて記述します。「1234″56」をCSVファイル内に記述する場合の例だと ・・・,abc,"1234""56",def,・・・
2016.12.21 水
PHPのコントローラの頭とかにあるコメントはこんな感じで書いておくとphpDocumentorがいい感じに読み込んでくれる。 /** * [区分]クラスの概要 * * クラスの詳細 * 出来るだけ細かく書いたほうがよいが、詳細な説明は各メソッドに任せる。 * 全体での共通ルールとか仕様を書く。 * * @access アクセスレベル * @author 名前 <メールアドレス> * @copyright 会社名 All Rights Reserved * @category カテゴリー(処理系) * @package パッケージ(MVC) */
2016.12.12 月
wp-post-tumblr TumblrにWordpressで作成した記事を自動的に投稿するプラグインです。投稿する内容はWordpressの記事を本体と考えているので基本的にはquoteでPOSTします。画像が投稿された場合は、これもWordpressの記事を本体としているので、投稿画像の最初の一枚しかPOSTしません。いずれにしろ本体の記事へのURLを投稿するので基本的には問題ないかと思います。quote(引用)とimage(画像)以外のPOSTには対応しておりません。また、記事更新時もTumblrにアップされます。 dounload: wp-post-tumblr_1.0 設定方法がやや面倒なので、以下の説明を参考にしてください。 Tumblrのアプリを作成する。(コンシューマーキー...
2016.11.15 火
画像パスをfile_get_contentsで読み込んでbase64_encode <?php $img = base64_encode(file_get_contents('xxx.png')); ?> data:image/png;base64,をつけて普通に表示。(ソースが結構すごい感じになる) <?php $img = base64_encode(file_get_contents('xxx.png')); ?> <img src="data:image/png;base64,<?php echo $img; ?>">
2016.11.10 木
github.com/j4mie/idiorm http://idiorm.readthedocs.io/en/latest/ 使い方 呼ぶ require_once 'idiorm.php'; configみたいなの ORM::configure('mysql:host=localhost;dbname=my_database'); ORM::configure('username', 'database_user'); ORM::configure('password', 'top_secret'); select whereで普通にselectするみたいなのは、こんな感じで書きます。find_oneで1レコード取得。 $user = ORM::for_table('sample_tab...
2016.11.7 月
php.iniが訳あって直接書き込むことができない場合は、.htaccessに書く方法があります。しかし大元の本物php.ini内で、 php_value = On php_flag = On という風に設定する必要があります。これができないと.htaccessに設定しても無効になってしまいます。phpinfo()でも確認できるので、大元のphp.iniの設定を確認してみてください。レンタルサーバーによってはこの機能が使えるようになっているところもあります。ロリポだと大元のphp.iniもある程度GUIで設定可能です。 しかしこの設定で可能な範囲はlocal valueだけでMaster valueは大元のphp.iniの設定が必須になります。アプリの開発によってはMaster valueの...
2016.7.28 木
Proxy Error The proxy server received an invalid response from an upstream server. The proxy server could not handle the request GET /sample/index.php. Reason: Error reading from remote server なんだこのエラーは。正直porxyなんて使うことが滅多にないのでほとんど無知です。 <Proxy *> SetEnv force-proxy-request-1.0 1 SetEnv proxy-nokeepalive 1 </Proxy> もしくは <Location /hoge&...
2016.7.20 水
phpのcurlはいろいろ便利なので使えるんだったら使ったほうがいいです。(とはいえ代用できるコマンドが山程あるんですが。) curlでhtmlの内容を取得する 普通にURLアクセスしてhttpのレスポンスした文字列を取得する方法です。APIに接続するときとかスクレイピングなんかの土台部分になるかと思います。 <?php // gethtml.php $base_url = 'https://www.google.co.jp/'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $base_url); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($c...
2016.7.4 月
phpの開発では適当にやりがちなんですが、Documentないとつらいです。特に大きくなってしまったプロジェクトについては。そういうときに役にたつのがphpDocumentorです。classファイルのコメントからテキストを抽出して整理してくれます。pearからインストールできるのかpeearライブラリーの一部なのかよくわからないのですが、どっちなんでしょうか。 ## インストル とりあえず現時点では以下の要件を満たしていないとダメ。 – PHP 5.3.3 – intl extension for PHP – Graphviz CakePHP3で使うんだったらほとんど問題ないです。 http://qiita.com/itosho/items/0f809e...
2016.6.9 木
できるだけ最新に近い安定版を入れる。2016年現在でphp5.5とかphp5.6ぐらいです。php7 はまだBeta版(じゃないけど)それに近く資料が少ないので一応やめておく。 また、yum -y install phpを行うとLinuxでは現在php5.3がインストールされますが、これだと若干古いです。なのでリポジトリを調整して比較的新しいものを入れます。 既存の古いPHPをアンインストール # yum remove httpd php mysql-server 必要な場合はこれをやっておきます。 いずれにしろhttpd2.4じゃないとphp5.5は入らないので、ご注意ください。 # yum -y install php55 これでインストールできます。 # php -v PHP 5.5....
2016.5.14 土
インストールと初期設定 ここらあたりからダウンロードしてインストール。WindowsとLinux、Macとわかれているので、ここではMac版を選びましょう。私は、Mac版の「7.0.9 / PHP 7.0.9」を選んでみました。 デフォルトだと、コンパネみたいなものがここにインストールされているので、起動します。 /Applications/XAMPP/manager-osx.app 起動した後にlocalhostにアクセスしてみて、xamppが起動していたらOKです。 http://localhost/dashboard/ MySQLも起動していたら、こちらにアクセスできます。(ローカル環境ということもあってログイン・ログイアウトがないんですね。) http://localhost/php...
2016.5.12 木
# pear config-show Configuration (channel pear.php.net): ===================================== Auto-discover new Channels auto_discover <not set> Default Channel default_channel pear.php.net HTTP Proxy Server Address http_proxy <not set> PEAR server [DEPRECATED] master_server pear.php.net Default Channel Mirror preferred_mirror pear.php...
2016.4.20 水
ユニークコードの生成メモ。50万件のユニークコードを発行してくれといわれて、数字を適当に文字列置換。AAAAAAからEJJJJJまで作られるのだけどアルファベットの連続が嫌だと言われて「乱数にできない」っていうんですが、乱数だとユニークにならないので、また後で考えます。 https://saba.omnioo.com/sample/50man_code.php <?php # code数 $limit = 500000; for ($i=0; $i < $limit; $i++) { $bin = sprintf('%06d', $i); $code = make_code($bin); echo $code." \n"; } function make_code($input)...
2016.3.17 木
インストール準備 リポジトリの調整 epelレポジトリを追加 rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm remiレポジトリを追加 rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm phpインストール yum -y install php --enablerepo=remi-php55 php php-mbstring php-devel php-gd php-mysql php-pgsql php-pear php-pecl-apc php-pecl-apc-devel php-pe...