LoginSignup
0
0

More than 1 year has passed since last update.

Laravel まったくわからん

Last updated at Posted at 2022-12-21

Laravel まったくわからんので,わかるようにしていく過程を載せる

  • Laravel 6.x
    • Illuminate
  • PHP 7.x

Eloquent (ORM)

Arr (Illuminate\Support\Arr) / ヘルパー

  • Arr::only
    • assoc から指定したキーのみ含む assoc を作る
  • Arr::random
    • array からランダムで1つ選択する

PHP / array

  • array_keys
    • assoc からキーの配列を取り出す
  • array_key_exists
    • array のキーの存在チェック
  • array_merge
    • assoc をマージする
    • ... だと assoc をマージできない?
  • range
    • range(string|int|float $start, string|int|float $end, int|float $step = 1): array
  • array_diff
    • array_diff(array $array, array ...$arrays): array

PHP / String

  • explode

PHP / 関数

  • 呼び出しに ... を使うことで Traversable を実装した値を実引数に展開できる
    • 定義にも使える

PHP / trait

  • use
    • インポート的な

PHP

  • self::
    • クラスメソッドを instance メソッド内で読んだり
  • =
    • オブジェクトはリファレンス,それ以外はコピーする.
    • list を使うと分割代入できる.キー指定もできる.
  • ReflectionProperty
    • プロパティに対するリフレクションオブジェクトを作る.
    • アクセス権で無理したいときに使う
  • static
    • 静的なメソッドとかプロパティの宣言
  • ?
    • 型名の前に付けてオプショナルの宣言
  • "{$nam}"
  • is_null

PHP スコープ

  • グローバルスコープ
    • include したファイル側でも見れる
  • ローカル関数スコープ
    • グローバルスコープを見るために,global 宣言が必要
  • static 変数 (ローカル関数スコープ)
  • Closure

PHPUnit

  • expectException
    • 例外を期待する
  • スコープの記載が無いので,ヘルパーはstatic にして関数スコープの変数を使うと良さそう?
  • matcher が欲しい
  • 時間を操作したい
  • Pest - An elegant PHP Testing Framework
    • まだ変えるメリットは強くなさそう
  • Storage
    • Storage::fake
    • \Illuminate\Support\Facades\Storage
      • assertExists とか使える
  • データプロバイダー
    • テストの共通化になるのであまり使いたくない.
    • テストメソッドに @dataProvider アノテーションをつけて,メソッドを指定する.
    • データプロバイダーメソッドは,array を返す.それぞれがテストメソッドの引数に渡される
    • setUp / tearDown は各テストメソッドが実行される前に実行する.

テスト関連

Carbon 日付

  • https://carbon.nesbot.com/docs/#api-testing
    • startOfMonth()
      • なんで start やねん……
    • endOfMonth()
    • timestamp
      • time() 関数を使わない方がいいかも.
    • now()
    • withTestNow()
      • freeze できる.Carbon::now() とかを使うと良さそう

Blade / view

  • {{}} / {!! !!}
    • 埋め込み.エスケープするかしないか
  • $request->session()->flash('status', 'finished')

Routes

  • resource

Vim

workdir/fixer
#!/bin/sh

root=`dirname $0`

# skip 'fix' subcommand
if [[ $1 == 'fix' ]]; then
  shift
fi

( cd $root && docker compose exec php php artisan fixer:fix --path "${@}" )
let g:ale_fixers = {
  \ 'php': ['php_cs_fixer'],
  \ }
let g:ale_php_cs_fixer_use_global = 1
let g:ale_php_cs_fixer_executable = $HOME . '/workdir/fixer'
let g:ale_filename_mappings = {
  \   'php_cs_fixer': [
  \       [$HOME . '/workdir', '/var/www/src'],
  \   ],
  \}
.zshrc
function vi {
  if [[ $(pwd -P) = "${HOME}/workdir" ]]; then
    TMPDIR=$PWD/var/tmp vim "${@}"
  else
    vim "${@}"
  fi
}

雑感

  • PHP関数名難し過ぎるだろ……
    • Collection に寄せていった方がいいんだろうか?

Refs

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0