Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
概要 FuelPHPで作成しているシステム内で、 他のサービスのAPIを利用したい場合の方法。 FuelPHPにあるパッケージを使って行う。 WebAPIを利用する 以下のようにできた。 サンプルコードで叩いているAPIは、Slackのもの。 https://api.slack.com/methods/users.list <?php namespace Fuel\Tasks; class Test { public function run() { // APIのトークン $token = ''; // Request_Curlを生成 // http://fuelphp.jp/docs/1.7/classes/request/curl.html $curl = \Request::forge('https://slack.com/api/users.list', 'curl'); //
<?php public static function login_validate() { $val = Validation::forge(); $val->add_field('email', 'Email','required'); $val->add_field('password', 'パスワード', 'required'); $email = Input::post('email'); $password = Input::post('password'); $val->add('dummy', 'dummy')->add_rule( function () use ($email, $password) { // login_validate if (!$email || !$password) { return true; } $user = Model_User::q
概要 PHPのビルトインサーバを使っていたが、環境変数を外から設定することができない。 FUEL_ENVを設定してモードを切り替えが気軽にできないので不便だった。 ビルトインサーバを書き換えるのは難易度が高そうだったので、 Plack上で動かすことで環境変数を設定できるようにした。 Plackで動かすためのスクリプト スクリプトは以下のようになる。 use Plack::App::CGIBin; use Plack::App::PHPCGI; use Plack::Builder; use File::Zglob; my $DOCROOT = 'public'; my $php_cgi = ''; $php_cgi ||= `which php-cgi`; chomp($php_cgi); my $static = Plack::App::File->new(root => $DOCROO
// 基本形 DB::select()->from('hoge')->execute()->as_array(); // join DB::select()->from('hoge') ->join('moge','left')->on('hoge.moge_id','=','moge.id') ->execute()->as_array(); // order by DB::select()->from('hoge') ->order_by('hoge.pub_date','desc') ->execute()->as_array(); // group_by DB::select()->from('hoge')->group_by('hoge.moge_id') ->execute()->as_array(); // sumを取りたい DB::select(DB::expr('sum(
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? $ php oil test Tests Running...This may take a few moments. PHPUnit 3.7.29 by Sebastian Bergmann. Configuration read from /home/fuelSample/fuel/core/phpunit.xml FFFFFFFF.....FFFF.F.F.....F.................................... 63 / 361 ( 17%) ..............................
<?= Security::js_fetch_token(); ?> <script type="text/javascript"> function sendForm(submitButton){ var button = $(button); var form = button.closest('form'); form.append($('<input type="hidden" name="fuel_csrf_token" value="' + fuel_csrf_token() + '">')); $.ajax({ url: form.attr('action'), type: form.attr('method'), data: form.serialize(), timeout: 10000, complete: function(xhr, textStatus){ // o
// バリデーションクラスをインスタンス化 $val = Validation::instance(); // emailカラムにバリデートを設定 $val->add('email', 'メールアドレス') ->add_rule('required') ->add_rule('valid_email'); // 何も引数を指定しなかった場合、デフォルトで$_POSTが引き渡される if($val->run()){ // バリデーション成功の場合ここに入ってくる }else{ // バリデーション失敗の場合ここに入ってくる foreach($val->error as $key=>$value){ // $key:'email' // $value:エラー // $value->get_message():エラーメッセージ } } ちなみにデフォルトのvalid_emailの中身はfilte
概要 FuelPHPでプロファイルを見たいときにはPHP Quick ProfilerをベースにしたProfilerが一番簡単だが、ファイルやログに出力できない?のが非常に使いにくい。 特にAPI Serverなどを開発している時にはQuick Profilerなんて見れない。 ↓他の人はfuel/core/classes/profiler.phpを置き換えたりしているが、コアライブラリを置き換えるのはなるべくやめたい。 そこで、FuelPHPのEventとReflectionClassを使ってプロファイルをログに出力することをやってみる。 FuelPHPで3種のprofilerを使ってみた Reflection Class ReflectionClassはPHP5から導入されている。 情報工学においてリフレクション (reflection) とは、プログラムの実行過程でプログラム自身の構
FuelPHPで配列のバリデーションを行う場合はいくつかパターンがあるのでここで紹介します。 パターン1:配列の要素毎にバリデーションルールを設定 Validationインスタンスのadd/add_fieldメソッドで配列の要素を一つずつ設定することが出来ます。 要素一つ一つの形式をチェックしたい場合はこの方法が良いと思います。 例. $validation = Validation::forge(); $options = Input::post('option'); if (is_array($options)) { foreach ($options as $i => $v) { // 要素毎にバリデーションルール設定 $validation->add_field("option.$i", 'オプション', "required|numeric_between[1,10]"); } }
Cronの設定って下記の問題点があるかと思います 設定が無駄に多い 決まった時間に動作するバッチが多くてメモリを圧迫する dateパラメータを記載するときに%をエスケープ忘れてコケる crontab -e しようとして crontab -r して設定全消し などなど fuel-runtasksというPackageを作成しました 概要 RunTasksはcrontabなどに設定してあるFuelPHPのtasksを一元管理するために作成しました ただしパイプなどで別に渡してしまい場合には不向きかもしれません 実用例としては 毎時にAを実行してからBを実行したい場合など順次に実行する場合 毎時に実行する C, D, E をcrontabなどに3行書いてしまっている場合 グルーピングをして毎時や毎月実行させる場合 しかしながら、設定した内容を順次に実行していくため注意が必要です 例) 毎時、毎月に
副題:kitcometalsから値段を持ってくる(3) 完成しただけで不満はいっぱいあるよ!ということで改良編。 環境 ・Windows7Pro ・Xampp 1.8.1(英語) apacheとmysqlを稼働させておく。 ・fuelphp 1.5.3 前回は"C:\xampp\htdocs\kitco\fuel\app\views\kitco_form.php"に数字を取りに行く処理を書いたけど、これだとEditの時等のように必要がない時であっても_formが呼び出されるたびに再計算しに行くので読み込みが遅くなるという話があり(1秒程度ですが)。こんなスマートじゃない話があってたまるか!「俺はエレガントに解決するんだ」とやり直しを決意。 余談ですが高校の時の数学教師に「問題はエレガントに解決するものだ」と教えられたせいでこんな子になりました。 そもそもこれは本来"C:\xampp\htd
cakePHP3でAPI叩きたい! cakePHP3でAPI叩きたくないですか? しかもajax使って。 jquery使う? 最初はjqueryだけを使おうかなって思ってたんですけど、クロスドメインの問題があるということと、APIを叩くためのtokenが必要で、それをhtmlの中に書きたくないなぁということで、 cakePHP3のサーバサイドでAPIを叩き、jqueryを使ってcakePHP3が叩いたAPIの結果をjsonで取得するという方法にしてみました。 cakePHP3でjsonを返す SIMPLE JSON RESPONSE WITH CAKEPHP 3を見ると良いと思います。 コードはこんな感じ。 namespace App\Controller; class MyCustomersController extends AppController { public functio
この記事は、2014年06月06日に書きました。 ■まえがき ドメイン名の取得の仕方はちらほら見かけるけど、 「プロトコル://ドメイン名」を取得する方法がなかなか見つからなかったのでメモ。 ■FULL_BASE_URL constant FULL_BASE_URL https://example.com のような完全なURLプリフィクス。 バージョン 2.4 で撤廃: この定数は廃止されたので、代わりに Router::fullbaseUrl() を使用する必要があります。 ∩( ・ω・)∩ ローカル開発環境で、「http://localhost」のように取得できました。 (数日前の事なのに、何故これが必要だったかもう忘れた;ω;) ■参考URL 定数FULL_BASE_URL - CakePHP2.xドキュメント http://book.cakephp.org/2.0/ja/core-
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く