Archive "2017年1月"を表示しています。
2017.1.30 月
ComposerのOptimized Autoloaderを利用する クラスのマッピングをしてくれるというやつです。本番環境では必ずやる。開発環境では遅かったらやるぐらいで大丈夫そうです。しかしこれやると本当に速くなります。 $ php composer.phar dump-autoload -o Generating optimized autoload files これをやって、 $ php composer.phar update -o これをやる。 エラーが出たらcomposerを最新にするといいっぽい。(*1) 更新ファイルは以下になるようです。 composer.phar vendor/composer/ClassLoader.php vendor/composer/LICENS...
2017.1.30 月
https://wacul-ai.com/ 実際こういうのってどうなんでしょう。今度やってみたい。
2017.1.25 水
https://github.com/jgamblin/Mirai-Source-Code/tree/master/mirai/bot http://www.atmarkit.co.jp/ait/articles/1611/08/news028.html Mirai botnet creator unmasked as DDOS protection developer tempted by the dark side
2017.1.25 水
BEM METHODOLOGY DOCUMENTATION BEMによるフロントエンドの設計 お前の考えたルールなど穴だらけだ!というスローガンの元行われているわけではないのですが、自由度の高いHTML/CSSコーディングの中である一定のルールを作ってゆこうというプロジェクトというか啓蒙というか宗教というかそういうものになっています。システム側のいわゆるプログラミングではここ最近はいいフレームワークもあるしそこそこルールかが可能だったりするんですが、コーディングに至ってはカオス。
2017.1.22 日
Symfony2にはFormを作るにはとても便利な機能がたくさんあるのですが、便利ゆえに微妙なカスタマイズができなかったり痒いところに手が届かなかったり(届く知識と技術がなかったり)でなかなか歯がゆいものがあるので、ここではベタに書いてゆく方法を紹介します。 ここでは、 – ID – ホームページタイトル – URL – 連絡先のEmail – 作成日 – 更新日 – 削除フラグ という項目で作ります。 バンドルを作成 もしバンドルがなかったらバンドルを作成します。 $ php bin/console generate:bundle --namespace=Leaning\TemplateBundle --f...
2017.1.20 金
WordPressをインストールするときにドキュメントルート以下にWordpress用のディレクトリ(/cms/)を1つ作ってその中にインストールする場合はアクセスURIが http://example.com/cms/ のようなかたちになってしまいますが、トップページから全部Wordpressにしたい場合はいくつか方法があってちょっと設定変更しないとダメです。 トップページも本体のWordpressの機能にしてしまう(この場合テーマのindex.php、home.php、front_page.phpが使えます。) トップページだけWordpressの機能を使えるようにする。(この場合は、たいていのWPタグを使えるようにしつつもPHPをスクラッチで書く感じ。) ということになると思います。 ...
2017.1.19 木
情報源 他人が作成した組み方がわからない(いや自分が組んだものさえわからない) $ bin/console router:match / スラッシュにマッチしたURIに紐づくコントローラやルーティングファイルなどの一連の関連ファイルのリストを作ってくれます。これないと死にます。 キャッシュ 開発中はごく頻繁にキャッシュを削除しないと確認作業ができません。削除はそれでいいのですが、今度は最初のアクセスもかなり時間がかかるのでいわゆるcold cache/warm cacheという感じで削除後はコマンドでwarmupした方がいい。–no-warmupをつけてもつけなくてもあんまり変わらないときがあるので、どっちにしろwarmupした方がいい。 $ php bin/console ca...
2017.1.18 水
バンドルの作成 いろいろ難しいSymfony2ですがチュートリアルはここにあります。 むかしはapp/consoleだと思っていたんですが、bin/consoleになったような気がする。 $ php bin/console generate:bundle --namespace=Leaning\TemplateBundle --format=yml 例によってダイアログでいろいろ聞かれますが、全部エンターのみ押していけばOK。 Welcome to the Symfony bundle generator! Are you planning on sharing this bundle across multiple applications? [no]: Your application ...
2017.1.18 水
composerの入手 $ curl -s http://getcomposer.org/installer | php composerからsymfony2をインストール $ php composer* create-project symfony/framework-standard-edition [インストールするフルパス] インストールするパスに絶対パスを指定したらうまくいかなかったので、カレントディレクトリにとりえず落として、各プロジェクトの場所に移動させました。またディレクトリは空のものを用意しておかないと駄目みたいですね。 そもそもcurlが使えない場合、うまくcomposerが作動しない場合は、普通にダウンロードしてサーバーにあげます。 9.4MBあったのでそこそこの大きさ...
2017.1.17 火
バージョン確認 $ php artisan --version Laravel Framework version 5.2.45 コマンドリスト確認 $ php artisan list Usage: migrate [options] Options: --database[=DATABASE] The database connection to use. --force Force the operation to run when in production. --path[=PATH] The path of migrations files to be executed. --pretend Dump the SQL queries that would be run. --se...
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.11 水
X-Forwarded-ForとかX-Cluster-Client-Ip LB(ロードバランサー)がかませてあるネットワーク設定ではアクセス元のグローバルIPが変換されてしまってログなんかに記述されるIPアドレスがLBのローカルIPアドレスになってしまうことがあります。 そういう場合にはX-Forwarded-ForとかX-Cluster-Client-Ipなどの特殊な変数でアクセス元のもともとのIPアドレスを取得できることがあります。 ロードバランサー越しにIPアドレスを取る(X-Cluster-Client-Ipの場合) ロードバランサーの性能というか設定によりけりだと思いますが、X-Cluster-Client-IpでIP取れました。設定するIPアドレスのドットをエスケープするところが...
2017.1.10 火
Nortonのパスワードジェネレーターです。特に何の特徴もなく普通に誰でも作れるプログラムなんですが、一応Nortonブランドということで企業で使っても怒られないかもです。 Noron使っている人以外でも使えると思われ。 パスワードの長さ:(デフォルトで12桁) 英文字を含める: 大文字と小文字を含める: 数字を含める: 記号を含める: 類似した文字を禁止する: 数量: https://identitysafe.norton.com/ja/password-generator
2017.1.6 金
Dドライブのスキャンがされていない 結構驚きなのが、Nortonの初期設定ではCドライブのみのスキャンになっててDドライブが無視されているんです。比較的素人にもわかりやすいUIになっているので仕方のないところではあるのですが、システムの全スキャンとか何を指しているんだかさっぱりわからないです。 1.Nortonを立ち上げてスキャンをクリック。 2.カスタムスキャンを選択 3.スキャンの作成をクリック 4.ドライブの追加をクリック ちょっと仕様がわからないのですが、場合によってはフォルダの追加でも同様のことができます。 5.Dドライブを選択 6.スキャンスケジュールを設定 週一ぐらいでよいのではないかと。その他の設定はデフォルトのままでOKだと思う。 7.スキャンオプションの設定 デフォルトの...
2017.1.4 水
改行コード Windows環境:CRLF Linux環境:LF “(ダブルクォート)が文字列の中にある場合 CSVのフィールド内に「”」を記述する場合は、「””」のように「”」を並べて記述します。「1234″56」をCSVファイル内に記述する場合の例だと ・・・,abc,"1234""56",def,・・・
2017.1.4 水
ブロック要素にfloatをかけるとCSSでは高さが消滅します。試しにbackgroundに何らかの色をつけても効かないし、Developerツール辺りでそこらをわさわさしてもマーキングされません。なので基本的にはそのfloat要素と隣接する他の要素にも影響してmarginが効かなくなります。marginはある一定量の大きさに対してmarginを指定するので、高さのない要素にも効かないということになっているようです。 floatを解除する方法は、 – でclearする方法 – < div>の空要素にclearする方法 – floatしている親要素にclearfixする方法 があります。どれも一長一短ですが、は基本的には使わない方がいいです。はHTML5...
2017.1.4 水
テーマまでのディレクトリパス bloginfo('name'); // ブログタイトル bloginfo('url'); // ブログ URL : http://hoge.com bloginfo('wpurl'); // wordpress ディレクトリ URL : http://hoge.com/wordpress bloginfo('template_url'); // テンプレートファイル URL : http://hoge.com/wordpress/wp-content/themes/foo bloginfo('stylesheet_url'); // style.css ファイル URL : http://hoge.com/wordpress/wp-content/themes...
2017.1.4 水
WordPressで検索フォームをカスタマイズする時の方法。基本的に単に動くようにするには、テーマ内にを設定してsearch.php(検索結果ページ)を作ってあげるだけでOKです。カスタマイズはいろいろできますが、ここでは検索アルゴリズムはWPに備わっているものを使ってその他の表面的な部分を作成することにします。WordPress Codex 公式ページはこちら。 検索フォームを作成するテーマ内での基本的なコード 1. テーマ内に検索フォームを作成します。 <?php get_search_form(); ?> 2. functions.phpに以下を付け加えます。 function my_search_form( $form ) { $form = '<form role...
2017.1.4 水
revision-control WPは非常によくできたCMSで編集内容をその都度自動保存してくれます。1つの記事につき更新をかける度に自動保存してくれるので記事によってはかなりの数のリビジョンと呼ばれる自動保存がデータベースに残ります。最初の頃はいいのですが、最終的にデータベースアクセスにかなり支障をきたすので、ある程度フィックスした記事についてはリビジョンを削除した方がいいです。それらの設定を自由にできるプラグインです。 MySQLのSQL文に詳しい方はrevisionされているレコードを検索して一括削除してしまった方が速いですよ。 revision-control brBrbr300 老舗中の老舗みたいなプラグインでWPの記事編集時の改行ルールを変更してくれます。WPは欧米産なのでテキ...
2017.1.4 水
難しい話はさておいて、cssでviewポートと呼ばれる解像度の出力ができるようになったことから、スマホやPCのデザインを一枚のCSSで書くことができるようになりました。現実問題として2012年現在では普通にスマホ用とPC用のHTMLをかき分けた方が開発としても安定しているし工数も節約できます。が、時代の流れかどうかはわかりませんがアホな人々はこういう派手なアクションを好むというのもあって仕方なくやっている感じです。今一度いいますが、特にこれが優れたかっちょいい技術でもなんでもないんですよ。皆さん。 まずはHTMLのmetaタグにこれを入れます。 <meta name="viewport" content="width=device-width,initial-scale=1"> ...
2017.1.4 水
テーマの中とかでポストした記事のIDを求めないとダメな時があってその時のメモです。wpdbクラスを使ってやっています。関数内では最終的に最大値に1を加算しているので、実際は、次にポストするIDを求めていることになります。便宜修正して使ってください。 $sql = "select * from $wpdb->posts where post_type = 'post'"; $posts = $wpdb->get_results($sql); $max = multidimensionalMax($posts); print $max."<br />¥n"; function multidimensionalMax($data) { foreach($data as $l...
2017.1.4 水
SSH2の接続モジュールをインストール FTP接続は基本的に嫌なのでもしサーバーの管理権限があるのだったら、SSH2で接続するのをすすめします。なのでWordpressのアップデートなど様々なやり取りでSSH2を使えるようにした方がいいです。 WordPressの更新などでSSH2を使う 先頭の全角スペースを反映させる 日本語は文頭の最初を一文字スペースを入れてインデントするのですが、英文はやらないんですね。WPでは無駄なスペースを最初から親切に詰めてくれるのですが、日本語だとなんか変なので自然にテキストが書けるように文頭全角スペースを反映するように設定します。テーマ内のfunction.phpに以下を埋め込みます。 function my_tiny_mce_before_init_filt...
2017.1.4 水
WPのオリジナルテンプレートはテーマ内でのみ作成可能ということで、なかなか融通が効かないです。しかし融通がきかない分、システマティックで爆速という利点があります。MTのテンプレートのようにいつでもどこでも作れる感じじゃなくて、それなりに制約があるので、それをまとめておきます。 WordPressのオリジナルテーマの基本的な作り方については、いろいろなところに情報があるのでそちらを参照ください。ここで解説するのは、完全にオリジナルなテンプレート1つの作り方です。 固定ページを1つ作る まず、テンプレートをつくるための固定ページを1つ作ります。Wordpressのテーマ内には規定のテンプレート以外で自由につくることができません。テンプレートはその階層順に従って読み込まれるだけで、それ以外の単独P...
2017.1.4 水
以前のOSと比べても全くやり方変わらないのですが、いろいろとちょっと違ったりするので書いておきます。(違わないかも) インストール インストールはこれだけでOKです。Ubuntuならサーバー自体をクライアントとして使う場合もあるかと思うのでopenssh-clientも一緒に入れておくとよいと思います。 apt-get -y install openssh-server openssh-client なんか設定中にいろいろやりすぎて失敗しちゃった場合は、 apt-get -y remove openssh-server openssh-client で一度削除してからもう一度インストールしなおすとよいと思います。 インストールした時点で起動させてみる # /etc/init.d/ssh re...
2017.1.3 火
SilexはシンプルなPHPフレームワークではありますが、あまりにもシンプルすぎるのである程度フレームワーク的なものが整ったものがほしいというところです。Githubにスケルトンがあるので、composerを使ってセットアップ出来ます。 composerからインストール php composer.phar create-project fabpot/silex-skeleton /MY_INSTALL_PATH "~2.0" /MY_INSTALL_PATHは空のディレクトリじゃないとダメです。 composerで落としてくるとざっくりですが、以下のようなものがインストールされます。 .gitignore LICENSE README.rst bin composer.json compos...
2017.1.1 日