[Laravel 6.x]Route::get()で設定したURLパラメーターの取得
Laravel6.xでRoute::get('/path/to/{id}')で設定したidの取得方法について。
HOME > WEBプログラム覚書 > PHP
Laravel6.xでRoute::get('/path/to/{id}')で設定したidの取得方法について。
LaravelでADRパターンを適用した場合のActionのディレクトリはapp/Http/Actionsにするのがまぁスタンダードなディレクトリ構造っぽい。
Laravelのconfig/と.envについてよくわかんなかったので。
WordPressが5系にメジャーアップデートしたのでそろそろ入れ替えのお仕事のついでに テーマをきれいにしようかなと思っております。
引数を参照で受け取る関数にリテラルを渡したときに発生しがちなエラー
PHP 5.2.7以降は便利な定数が追加されてる模様。
layoutファイルの中でcellをrender()するとViewでmemory size エラー出る場合がある。
どうやらViewでsetLayout()とか使ってると無限ループのようになってメモリエラーになるっぽい?? 下手なlayout設定は命取りになる模様。
そろそろWordPressのショートコードのサンプルでextract()を使うのを辞めてもいいのではないだろうか。 まぁshortcode_atts()がarray_merge()ではなくデフォルト値の設定ということを考えれば変数の上書きするような コードにはならないだろうけど補完も効かないし、関数実行コスト余計にかかるしなにもいいこと無い気がする。
いまさらながら・・・
久しぶりにWordPress更新したらカテゴリが表示されなくなった。原因を調べてみると
再帰すると値が返ってこない。
return がなかったからでした。(´;ω;`)コメントくれた人ありがとうございます。
ブラウザとかOSによって全部バラバラじゃねーかw
詳細なバージョンとかメモってないんだけど、Windows XP のChromeとWindows 8.1 のChromeとUbuntuのChromeで試したところ application/zip、application/x-zip-compressed、application/octet-streamの3つが出た。
この値を信用するなってことは、当然ながらマニュアルにしっかりと書いてありましたね。はい。
[CakePHP2.X] HtmlHelper、FormHelper、Viewは直接使わないほうがイイ。という記事を書いたので、 FormHelperを直接使わない場合、どのようなことができるのか書いておきます。地味なことしかやってないんで地味な例ですけど・・・
いちいちarray_merge()してましたが、FormHelper::input()のオプションで出来るんですね。
マルチサイトONで設置してあるWordPressをドメインを変更してローカルで動かすときの手順。
独自にメソッド追加してましたが、Model::isUnique()が使えることに最近気が付きましたw
つい最近わかった。
ブログを例にして投稿(Post)とタグ(Tag)がhasAndBelongsToManyの関係にあるとします。
でもってタグ「iPad」のページに「iPad」のタグが付いた投稿を表示させることは簡単ですよね。
別に機能的に問題があるとかそういう話ではなく、デザインだったりフロントをよくいじる人は
高確率で HtmlHelper、FormHelperを拡張したくなるはずです。
なので最初からHtmlHelper、FormHelperを継承したオリジナルのヘルパーを作っておくと楽ですよというだけの話です。
なんかうまく動く時と動かない時があったのでちょっと整理。
WordPressのショートコードって便利なのでWordPress以外でも使いたいのですが、 再利用しにくい実装なので、クラス化しようと思ったら既にしてありました。
WordPress 3.5で$postの型がstdClassからWP_Postに変更になったのでメモ。
メールアドレスの再入力とかうっとおしい派としてはあまりやりたくないのですが、一定の効果はあるみたいなので需要はあるようですね。 ってことでメールアドレスの再入力のような複数のフィールドの型が同じ場合のやりかた。 結果はこんな感じになります。バージョンは2.2.4。
ちょうど一年前に投稿したZend_Loader_Autoloader を使うとWarningの解決方法がわかった。 去年もこの時期WordPress触ってたんですね。 利用したZendFlameworkのバージョンは1.11.7。
ウェブサイトの作成でPHPを使うメリットとしてウェブサイトのパーツをrequire()、include()で 呼び出すという方法がよく紹介されています。
たしかに便利ですが、呼び出したものがそのまま出力されてしまうため、汎用性欠けあまり使い勝手のいいものではありません。 require()、include()は純粋なPHPスクリプトを読み込むのに使って HTMLなコンテンツを呼び出すための専用の関数を作った方が捗ると思います。
CakePHP2系でPEARをインストールして利用するまでのメモ。 PEARパッケージとしてCakePHPを入れるのではなく、CakePHPにPEARを入れる場合です。
allowとdenyで全てのURLを対象とする場合、1系では*を引数にしてましたが2.1.Xでは引数は不要になったみたいです。
基本全てのリクエストを認証不要にして、特定のアクションだけ認証かけたい場合に allow('*')とするとうまく動かないみたいです。
ローカルのテスト環境と本番環境で定数とか変えたい場合、よく$_SERVER['HTTP_HOST']の値で条件分岐を書くんですが コマンドラインで利用すると$_SERVERの値はほとんど設定されてないのでNoticeエラーを吐き出します。
セキュリティ的に禁止してるんだろうけどChromeでは出来ないのか、そもそもJavascriptの仕様として禁止されてるのかは不明。
PHPで文字列を1文字ごとタグで囲みたいとき。
FormHelper::input()の出力がどのくらい変更できるかのテスト。
CakePHP2系が出たので、勉強しなおしてるんですが、Authコンポーネントがいろいろ変わってましたのでメモしときます。1系もあまり勉強できてないので、CakePHPの書き方として正しいのかは不明ですが、とりあえずこれで動いたという感じです。
2011.02.26時点のパッケージ一覧。対象はPEAR.PHP.NET。
捨てることで何かメリットがあるかと言うと残念ながら特にありませんので、この内容をオススメしてるわけではありません。
時間も時間なので、あまり使用頻度の高くない微妙なネタを。
会員制サイトなどで不特定多数の人にログインさせる場合、フッタのバージョン情報は隠しておきたかったり、 こじゃれたメッセージを表示したいときとか使うアクションとフィルタ。
ブログのget_bloginfo()で取れないデータが必要な場合に使うもの。
[WordPress]テンプレートがごちゃごちゃしてきたらstr_replaceとかでごまかしてきたけど、限界が来たのでラッパーをかいてみた。
次の投稿とか前の投稿を取得するget_adjacent_post()が、どうもループ内じゃないと利用できないようになっている模様。
Zend_Loader_Autoloader::autoload()を利用していて、is_a()の第1引数がパスっぽいものだとWarningが発生する。
query_posts()を使うとfalseになるとかの問題もあるis_home()。
WordPress 3.3。Zend_Loader_Autoloaderでクラスのオートロードしたら管理画面でWarning出現。
WordPressが呼びだすテンプレートをTEMPLATEPATH直下じゃなくてTEMPLATEPATH/views/とかにできるのか調べた時のメモ。 バージョンはWordPress 3.3 日本語版。
3.2.1、マルチサイトONでの結果。
ローカル環境で動いて本番環境で動かない。ローカル環境と本番環境で$table_prefixが異なる場合など get_user_meta()使ってないか確認してみる。
あまり使うことはないですね。
よく見かけるけど実は非推奨なこと。暇なときはマニュアル読んでおくといろいろ発見がありますね。
3.1以前では投稿をカスタムフィールドで検索したい場合、 1つしか指定できなかったんだけど、3.1から複数設定できるようになった。
WordPressのいまいちピンとこないやつらについてのメモ。
PHPを学び始めて関数の作り方はわかったけど、どういう関数作ればいいのかよくわからんって人に。 HTMLを記述する人(クライアント)向けにどんな関数を作ればよいのか考えていきます。
WordPressのプラグインとかテンプレートタグ作る場合も役立つと思います。
前回の「WordPressで会員サイト開発:Role追加編」の続きで、今回はRoleを指定してユーザー登録編
WordPressでこんな感じのサイトを作る。
WordPressとかMovableTypeは使ってるけどCakePHPは使ったこと無い人。 たぶんデザイナーさんとかにビューとレイアウトを分けるとイイコトあるよと伝えたい。
久しぶりにSPLネタ。
どう使えばよいのかわからないけど、とりあえずメモ。
ためのMovableTypeテーマを書いてみた。 MovableTypeの検索のシステムテンプレートをPHPに置き換えるの発展型。
おぉーーっとこれは実用性のない強引なキャッシュだー!
PHPとHTMLが濃密に絡みあうテンプレートは最もカオスになる部分。 自分が出来てない濃密な絡みをWordPressだけしてるなんて許せないので何とかすっきりさせたいところです。
小粋空間: PHPでXML-RPCを利用する方法でMovable Typeで、XML-RPCを利用する方法がエントリーされてたのでWordPressについて書いておきます。もちろん適当に。
全然気がつかなかったんですが、Atom見てて気がつきました。 wp-incluedes/feed-atom.phpでid要素はthe_guid()で出力されてるんですね。
Twigを眺めててspl_autoload_registerの引数ってArrayもありなんだと知りました。
最近SPLを眺めていますがなかなか理解できませんw とりあえずSimpleXMLIteratorから使ってみます。
PHPで画像を取得してMySQLに保存、そしてMySQLからデータを取得して表示させる方法を そろそろ書かないとまずい気がしたので書いておきます。 画像をデータベースに保存するのには、とても重要な意味があります。
そろそろプラグインの一つでも作れるようになりたいので調べてみたのをメモ。
tidyとSimpleXMLでスクレイピングの練習。
アニメーションががSexyとかじゃなく写真がちょいエロなだけなので 選ぶ写真によっては爽やかにもなりますw
ライブラリのパスを定数で設定することが多々あるが CakePHP ではini_setが使える場合、include_pathに追加するって処理になっている。
以下の件は激しくガセネタでした。すみません。普通にController::set()でlayoutに変数を引き渡せます。1.2.0でも出来てるのに恥ずかしいかぎりです。
こんなガセネタ流しておいても誰にも突っ込まれない影響力のないブログだったのが唯一の救いですね
metaのkeywordとdescriptionをセットしようと思ったんですが
コントローラーからレイアウトへ値を渡すいい方法がわからない。
思った以上に使う場面が多い。
ループごとにnewしてたんだけどsetTimestamp()を使えばいいことにようやく気がついた。
「WEBプログラム覚書::[PHP]google Analytics からアクセスの多いページの情報を取得」に引き続きGoogle Analytics API からデータを取得してみる。
CakePHPのcheckboxとhasAndBelongsToMany(HABTM)は僕のスペックだと軽くハマれるわ。
ちゃんと見た記憶がなかったのでメモというかコピペ
CakePHPのAuthコンポーネントのセットアップメモ。
google AnalyticsのAPIを利用してアクセスの多いページの情報を取得します。 利用するライブラリは↓
設定ファイルとか書くのはYAMLって形式が簡単でいいらしい。
CakePHPのコントローラーに関するメモ
CSSを処理したり生成したりするためのPEAR::HTML_CSSを使ってみる。使う機会はあまりなさそうですが。
ツールチップについて色々と検討。
最近思うのですが、マウス載せると何か出るよと気づかせる表現はあるべきですが、 載せたあとのアニメーションとか不要じゃないですか?
情報見たいからマウス載せてるわけで、すぐ見たいわけです。 アニメーションはいいから0.1秒でも早く表示してくれって思うのは僕だけでしょうか??
WordPressってループ外で何かしようと思うと面倒だなと思ってましたが $wp_queryとか使うとそれほど面倒じゃなくできそうな感じです。
Wordpressでハードコーディングしたくない文字とかどうするんだろうと思ってたらショートコードという便利な機能があった。 全然知らなかったです。こんな便利な機能、公式サイトでもっとアピールしといてもいいのに。
CakePHPで前に作ったサイトを復習がてら、最初からやり直そうかと思ってます。 主に1.2系のメモ。
まだまだPHP4は現役ですね。 久しぶりにPHP4でコード書いてたら肝心なところがコピー扱いでハマりました。
PHPには配列を操作する関数がたくさんあるのでちょっとずつ試していこうかとおもいます。
valuecommerceのAPIを叩いて返ってくるXMLを SimpleXMLを利用してパースしようとしたら、 うまくできない部分があった。
Compositeパターンメモ
単体オブジェクトである葉と葉や枝を持つことができる枝オブジェクトを同様に扱うことができる。 ディレクトリツリーのような再帰的なデータ構造を表現できる。
ブレイクスルーできそうな気がしたけど 結局どうにもならなかったコード。
何が問題だったかは覚えてない・・・
テキストをimgに変換するにはGDライブラリを利用すれば できるようなのでちょいと試してみました。
ディレクトリ内のファイルを取得する場合、opendir()使って やってましたがglob()という便利なものがあるんですね。
include pathって複数設定できたんですね。 include path必要なライブラリ使うときini_set()で いちいち切り替えてて面倒だなって思ってたんですが 知識不足だったようです。
PHPのempty() isset() is_null() if文の評価について
フレームワーク眺めていると、時々見かけるextract()。 慎重に使えば結構便利なのかも?
ちょいと使いそうだったんでメモ
プログラム(PHP4)ってものを勉強し始めてしばらくの間、 意味不明理解不能だったものが参照渡しでした。
function hoge(&$data){} こんなやつ。
なので今、PHP4を学んでる方は少ないと思いますが、 同じようにつまずいている方の何かの助けになるかもしれないので エントリーしときます。
間違ってたり、逆に混乱させたらごめんなさい・・・
インスタンスが唯一であることを表現するSingletonパターン。 もっとも非難されてるデザインパターンらしい(汗
simpleXMLではxPathを利用してノードにアクセスできるようなので試してみるよ。
simpleXMLを利用するとXMLファイルの作成などが簡単に できてしまうっぽいので試します。
php5になるとXMLが簡単に扱えるようsimpleXMLが利用できるようなので 動作テスト。
慣れないとなかなか使おうと思わないprintf()。使いこなせばかなり便利なのは間違いない。
一定時間経過したらログアウトとかに利用。時間の計算はUnix時間が便利。
めっさ基本的なことだけど、ファイル操作ってやってなかったんでやってみる。
pearのNet_UserAgent_Detectを眺めていたら「static」があった。 「static」なんて使ったことなかったのでどんな動きするのか試してみた。
オブジェクトをまるごとDBやテキストに書き込める形式にしてくれるシリアライズ。オブジェクトが保持しているすべての変数が対象。
数値関連の調査に使う関数is_int()、ctype_digit()、is_numeric()の違いについてメモ。
ディレクトリ内のファイル取得をごにょごにょやってた時に知った再帰って考え方。
サブクラスでオーバーライドした親クラスのメソッドを呼び出すものと思っていた「::」について調べてみたらそれは使い方の1つに過ぎないようだ。
なんだかできそうでできないjavascriptのコード。
PHPで不特定数の引数を受け取った場合、func_get_args()で受け取ることができる。
指定したキーが配列にあるかどうか調べるにはarray_key_exists()を利用する。
PHPにはOSやディレクトリの区切り文字を取得する定数が存在している。開発環境はWINで本番環境はLinuxって場合は多々あるので結構便利ですね。
変数がセットされてるかどうかをチェックするにはisset()を利用する。
乱数を発生させるにはrand()関数を利用する。
MySQLに接続するにはmysql_connect関数を利用する。
文字列中の特定文字の出現回数を調べるにはsubstr_count(文字列, 検索文字列)を利用する。
指定の文字列を指定回数繰り返すにはstr_repeat(文字列, 繰り返し回数)を利用する。
時間データを連想配列(ハッシュ)に格納するにはgetdate(タイムスタンプ)を利用する。
ある文字列を指定した文字で区切って配列に格納するにはexplode(区切り文字, 文字列)を利用する。
指定の文字列が最初に出現する位置を取得するにはsrtpos(文字列, 検索文字列)を利用する。ただしマルチバイト対応ではないのでマルチバイト文字の場合mb_strpos(文字列, 検索文字列)を利用する。
大量のデータを複数ページに分割して表示したい場合に便利だというPagerを使ってみた。
ファイルの作成、更新、最終アクセス時刻を取得するにはfilectime、filemtime、fileatime関数を利用する。
SQLインジェクション対策として送信クエリは必ずmysql_escape_stringでエスケープ処理したほうが良いとのこと。
たまに $a ? $b : $c って感じの記述を見かけることがある。さっぱりわからなかったので調べてみたらどうやら三項演算子ってものらしい。
危険な文字をHTMLエンティティに変換するにはhtmlspecialcharsを利用する
HTMLのタグを削除するにはstrip_tagsを利用する
パスをディレクトリ名、ファイル名、拡張子に分割してdirname、basename、extensionを要素に格納してくれるpathinfo関数。
is_numeric()は、引数が浮動小数点型、または整数型として取り扱えるかどうか確認できる。
配列から値を取り出す場合や連想配列からキーと値を取り出す場合は foreach文を使うと便利
文字列を反転するには strrev()を使う。
POST メソッドによりアップロードされたファイルを扱うには$_FILESを利用する
文字列の置き換えには str_replace() を使う。
ファイルの内容を配列に読み込むには file() を使う
指定したファイルが存在しているかどうかチェックするには file_exists() を使う。
ヒアドキュメントの内容は変数にセットすることが出来るらしい。
なんかまどろっこしい。。。もっとなんとかなるんだろうけど一応目的は達成したのでよしw
日時の取得にはdate()関数を使う。
どーやらPHPはLF利用を前提としているらしい。
HTMLを記述する時などクォーテーションで囲まなくていいのでとても便利。
どーやらPHP4.1.0以前のサーバ変数である$HTTP_SERVER_VARSはグローバル宣言しないと関数内でアクセスできない。
変数をPHP4.1.0以下にも対応させる。
パス情報からファイル名を取得する関数