phpstormでタブの設定方法
PHPStorm(webstorm)ではタブの設定は言語ごとに細かく設定できます。
Cmd( or Ctrl) + , を押して設定パネルを開いて、検索窓に indent(インデント)など入力します。
今回設定した箇所
- html,scss,php,js : タブからスペース2個
PHPストーム細かく設定できて便利、プロジェクトごとにできるともっと便利だけどできるのかなぁ。
PHPStorm(webstorm)ではタブの設定は言語ごとに細かく設定できます。
Cmd( or Ctrl) + , を押して設定パネルを開いて、検索窓に indent(インデント)など入力します。
PHPストーム細かく設定できて便利、プロジェクトごとにできるともっと便利だけどできるのかなぁ。
自動リロードしたくなったのでインストールしました。
% npm install browser-sync gulp --save-dev
browserSync.initの proxyオプションは開くアプリケーションのサーバーのURL(今回は192.168.0.17)を指定しています。
var gulp = require( 'gulp' ),
sass = require('gulp-sass'),
autoprefixer = require('gulp-autoprefixer'),
browserSync = require('browser-sync').create();
gulp.task('sass',function(){
gulp.src('sass/**/*.sass')
.pipe(
sass({
sourceComments: 'map',
outputStyle: 'nested'//'compressed'
}))
.pipe(autoprefixer({
browsers: ['last 2 versions'],
cascade: false
}))
.pipe(gulp.dest('css'));
});
gulp.task('watch', function() {
browserSync.init({proxy: 'http://192.168.0.17/index.html'});
gulp.watch('sass/**/*.sass', ['sass',browserSync.reload]);
});
ここまでで最少の基本的な設定OKな感じ。
ので、コマンドライン引数からSyncするファイルを指定できるようにしました。
コマンドの実行は以下のように-pathオプションを渡してファイルを指定する。
# gulp watch -path 'README.md'
受け取るプログラム側は、‘browserSyncProxy’ という変数を用意して。
-pathのパラメータがあれば後ろに追記する。
ということを冒頭部分に追加。
var gulp = require( 'gulp' ),
sass = require('gulp-sass'),
autoprefixer = require('gulp-autoprefixer'),
browserSync = require('browser-sync').create(),
browserSyncProxy = 'http://192.168.0.17/';
if(typeof process.argv[3] !== 'undefined' && process.argv[3] === '-path'){
browserSyncProxy += encodeURI(process.argv[4]);
}
全体は以下の通り。
var gulp = require( 'gulp' ),
sass = require('gulp-sass'),
autoprefixer = require('gulp-autoprefixer'),
browserSync = require('browser-sync').create(),
browserSyncProxy = 'http://192.168.0.17/';
if(typeof process.argv[3] !== 'undefined' && process.argv[3] === '-path'){
browserSyncProxy += encodeURI(process.argv[4]);
}
gulp.task('sass',function(){
gulp.src('sass/**/*.sass')
.pipe(
sass({
sourceComments: 'map',
outputStyle: 'nested'//'compressed'
}))
.pipe(autoprefixer({
browsers: ['last 2 versions'],
cascade: false
}))
.pipe(gulp.dest('css'));
});
gulp.task('watch', function() {
browserSync.init({proxy: browserSyncProxy});
gulp.watch('sass/**/*.sass', ['sass',browserSync.reload]);
});
まずは普通にsassがコンパイルできる環境を作って、HTML/CSSがかけるようにする。
(npmのインストールやgulpの基本的なところは省いています m(_ _)m)
frontnote ( https://github.com/frontainer/frontnote)
% npm install --save-dev gulp-frontnote
gulpfile.jsの編集(docというタスクで登録
コメント最初わからなかったのは、出力されたHTMLが読み込むCSSを、“css: [‘../css/style.css’] ”で指定する必要があること。
out: ‘./_styleguide’,は、出力するHTML一式の保存先のディレクトリ
var frontNote = require('gulp-frontnote');
gulp.task('doc', function() {
gulp.src('sass/**/*.scss')
.pipe(frontNote({
out: './_styleguide',
css: ['../css/style.css']
}));
});
タスクを実行すると、styleguideフォルダ以下に出力されてようです。
% gulp doc
[20:01:15] Using gulpfile ~/htdocs/_template/frontnote_example/gulpfile.js
[20:01:15] Starting 'doc'...
[20:01:15] Finished 'doc' after 6.72 ms
✔ Generated StyleGuide
% find ./_styleguide/
./_styleguide/
./_styleguide//assets
./_styleguide//assets/css
./_styleguide//assets/css/style.css
./_styleguide//assets/fonts
./_styleguide//assets/fonts/fontawesome-webfont.eot
./_styleguide//assets/fonts/fontawesome-webfont.svg
./_styleguide//assets/fonts/fontawesome-webfont.ttf
./_styleguide//assets/fonts/fontawesome-webfont.woff
./_styleguide//assets/fonts/FontAwesome.otf
./_styleguide//assets/images
./_styleguide//assets/images/favicon.ico
./_styleguide//assets/images/frontnote.png
./_styleguide//assets/js
./_styleguide//assets/js/main.js
./_styleguide//assets/js/ripple-effect.js
./_styleguide//assets/lib
./_styleguide//assets/lib/highlight.pack.js
./_styleguide//assets/lib/jquery.js
./_styleguide//assets/lib/jquery.mousewheel.js
./_styleguide//index.html
./_styleguide//sass-style.html
SASSのファイルは以下の用に記載しています。
/*
#overview
The・スタイルガイド
このスタイルガイドは簡単な練習用です。
*/
/*
#colors
@メインカラー #996600
@キーカラー #333
@アクセントカラー #ccc
*/
html{
font-size: 10px;
}
body{
font-size: 1.4rem;
}
/*
#styleguide
ボタンスタイル
.btnです。
```
<a class="btn" href="#">ボタン</a>
```
*/
.btn{
display: inline-block;
border: solid 1px #ccc;
background: #999;
padding: 1em;
border-radius: 3px;
text-decoration: none;
color: #fff;
a{
text-decoration: none;
color: #fff;
}
}
全部はいってますが、必要分を削って使っています。
GitHub : TakamoriYamashiro/mygitignore
#---------------- About files
*.log
*.sql
*.sqlite
#---------------- OS generated files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
Icon?
ehthumbs.db
Thumbs.db
#---------------- npm specific files
# package.json
# gulpfile.js
package-lock.json
node_modules/
#---------------- bower specific files
# bower.json
bower_components/
#---------------- Apache specific files
.htaccess
.htpasswd
#---------------- WordPress specific files
**/wp-config.php
**/wp-content/uploads
**/wp-content/themes/twenty*
**/wp-content/backup-db
**/wp-content/backups
**/wp-content/cache
**/wp-content/upgrade
**/wp-content/uploads
**/wp-content/wp-cache-config.php
**/wp-content/plugins/hello.php
#---------------- CakePHP specific files
/config/app.php
/config/.env
/tmp/*
/logs/*
/tmp/*
/vendor/*
#---------------- Tool specific files
*~ # vim
*.swp # vim
*.swo # vim
*.sublime-* # sublime text
*.komodoproject
*.tmlanguage.cache # sublime text & textmate
*.tmPreferences.cache # sublime text & textmate
*.stTheme.cache # cache files for sublime text
.settings/* # Eclipse
.idea/* # JetBrains, aka PHPStorm, IntelliJ IDEA
nbproject/* # NetBeans
.vscode # Visual Studio Code
.sass-cache/ # Sass preprocessor
Dash (https://kapeli.com/dash ) に登録していつでもすぐ追加できて便利です。 (このDashは早く買っておけばよかったソフトのトップクラスでおすすめ)
(プロジェクトのパス)/.git/info/exlude
に.gitignoreと同じように記載するだけでできました。
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
#************************************** my ignore settings
.gitignore
.DS_Store?
._*
.Spotlight-V100
.Trashes
Icon?
ehthumbs.db
Thumbs.db
gulpfile.js
package.json
package-lock.json
node_modules/
bower.json
bower_components/
.idea
最近小規模な独自の物流システムを設計しているところなのですが、商品のスキーマがいろいろ変化が多いのでどのように設計していくかを考えています。
作りたいのはこのようなテーブル
先程のテーブルAを次の図のテーブルB,Cように別に分ける。(WordPressの postsとposts_metaのような感じ縦持ちと呼ぶのは知らなかった。><)
テーブルBは基本的な情報のみ
テーブルCはメタ情報を記録
また情報が増えた場合は以下の用に増えても問題がない。
もう一つの問題は、スキーマの変更をどうやって管理していくか。
勝手にデータを追加していっても良いのですが、データの正規化のためのバリデーションルールなどを管理画面から操作していくために。
productsテーブルにはどのようなメタデータがあるかを何処かで定義しないといけません。
幾つか思いつく方法としては、
などが思いつきましたが、Aの方法はバックアップなど、管理も大変なのでNG。
Bのモデルのプログラムに記載するは、隠蔽するということで良い面もありそうだけど今回は、運営の担当者レベルで、管理画面から動的に変更をしたいのでNG。
ということでCのスキーマ用のテーブルに保存する方法を考えて行きたいと思います。
まずは最少な感じだとこんな感じ。(愛称:nicknameと説明:descriptionと追加)
もう少し考えるとお昼は提供可(day_menu)、夜はNG(night_menu)などの1 or 0 みたいな選択肢の場合はどうしよう。
と言った感じで表現できそう。なにか動的フォームの設計のようです。あとはセットメニューに配達範囲(プルダウンのような)の項目を追加をイメージして見ます。
関連するテーブル追加も考えたのですが、READで負荷がかかるところでないので(管理画面からの操作のみを想定)JSON文字列を突っ込んでます。
(DB正規化を尊重する場合は、scheme_select_optionsなどのテーブル追加なのかどうか?とかも)
まずはデータの全体のイメージはこれ
で、実際のテーブルは以下の通りに定義
とりあえず問題は無いと思うのですが、細かい部分をDBに定義するかプログラム部分に持ってくるかが今後ちょっと検討課題になってきそうです。
デスク周りをリニューアルしたついでに、1年ほど利用しているモニタアームです。
つかってみてすごく快適で使い勝手もよいのでご紹介。
購入のキッカケはディスプレイのスタンドが大きくて机が狭くなってしまっていた事です。
使っているディスプレイを4Kの’LG 27UD68-W IPSディスプレイ ’に変えたのですが以下の通りディスプレイ自体は薄いのにスタンドで15cmほどスペースをとってしまっている状態。(しかもAmazonのレビューなどでもある通り、スタンドはあまり安定性も良くない感じでした。そこでモニタアームを購入しました。
その後快適に利用しています。いろいろなモニターアームを半年くらいいろいろ物色していたのですが、もっと早く買っておけばよかったなぁと。
このモニタアームで気に入っている点を色々。
結構仕事する上で見た目てきなモチベーションも重要、
この部分までキレイに白なアームはなかなか見つからなかったです。
なんといってもこれ、スペースが広がるのは本当に仕事がはかどります。
ちなみに机も通常より低めのものを利用しています。
同じ姿勢に疲れて来たりした場合に、気分によってモニタの位置、角度を変えれるしもちろん縦にすることもできます。(デュアルディスプレイの人とかは良いかも)
なんといっても、以前抱えていたスタンドの色のデザインの不満、スペースが狭い不満がなくなってストレスフリーになって気持ちよく作業ができるのが一番良かったところです。
LG 27UD68-W IPSディスプレイ
SONY ワイヤレスポータブルスピーカー Bluetooth/Wi-Fi対応 ブラック SRS-X7/B
WordPressで画像をアップした所画像がアップできませんでした。
結果を3行でいうと以下で解決。
以下いくつか段階があったようなのでその解決方法の詳細
この場合はnginxが送信できるhttpのbodyサイズが不足していました。
私の環境の場合は、以下の設定ファイルを書き換えてnginxをreloadして解決しました。
ファイル : /etc/nginx/nginx.conf (共通の設定ファイルの最後当たりに追加)
http {
(中略)
client_max_body_size 50M;
include /etc/nginx/conf.d/*.conf;
}
(ドメインごとの設定ファイルなどで変更ができるように includeの前にいれました。)
しばらく大丈夫だったのですが、今度はWordPressでアップロードした場合に上限だとエラーメッセージがでました。
6000x4028-17M.jpg exceeds the maximum upload size for this site.
これはPHPの設定 ‘upload_max_filesize’ が原因でした。
まずサーバーで値を確認。
# php --info | less
//'upload_max_filesize'を検索。
upload_max_filesize => 2M => 2M
//と2MBにっているさらに'php.ini'で検索してphp.iniの場所を確認。
Loaded Configuration File => /etc/php.ini
/etc/php.iniを編集します。
# vim /etc/php.ini
//以下の部分を元の 2Mから10Mへ変
upload_max_filesize = 10M
//保存して10Mになっていることを確認
# php --info
upload_max_filesize => 10M => 10M
そしてnginx再起動
# systemctl restart nginx
でアップロードすると、あれできない。。と少し悩む。
あーphp-fpmもかと。
# systemctl restart php-fpm.service
として解決
Powered by WordPress & Theme by Anders Norén