文字列にrをつけるみたい。
folder_path=(r"\\127.0.0.1\xampp")
文字列にrをつけるみたい。
folder_path=(r"\\127.0.0.1\xampp")
Laravelでパッケージを使う場合には、Configをコピーしてから使う。オリジナルのConfigはcomposer updateのたびにデフォルトに戻るからだ。
「config:publish ベンダ名/パッケージ名」でConfigがapp/config/packagesにコピーされる。
>php artisan config:publish schickling/backup Configuration published for package: schickling/backup
一応メモを残すけどlaravel/installerは不便だった。「composer create-project」のほうが便利。
Windowsだと「laravel new」が失敗する。
> composer global require "laravel/installer=~1.1" Changed current directory to C:/Users/futari/AppData/Roaming/Composer ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Nothing to install or update Generating autoload files >laravel new five 'laravel' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
フルパスを指定しなきゃダメみたい。
C:\Users\futari\AppData\Roaming\Composer\vendor\laravel\installer>php laravel new five Crafting application... Application ready! Build something amazing.
winscp.comをCMDから直接実行する際に/scriptオプションでテキストを指定する。
"C:\Program Files (x86)\WinSCP\winscp.com" /script="myserver.txt"
myserver.txtの中身。
option batch on open admin:password@127.0.0.1 get /tmp/backup.tar close exit
Pythonのsubprocessを使って標準出力を入手したい。
import subprocess cmdline = 'echo test' p = subprocess.Popen(cmdline, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE) while True: line = p.stdout.readline() if not line: break print(line.strip())
ところが、この場合「test」ではなく「b'test'」と表示される。
b'test'
デコードすれば結果だけを表示できる。
print(line.strip().decode('ascii'))
artisan用のコマンドは名前が変わって「コンソール」になった。なのでmake:consoleでコマンドを作る。
php artisan make:console FutariUpdate --command=futari:update
app\Console\Kernel.phpにコマンドを登録する。
use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; class Kernel extends ConsoleKernel { protected $commands = [ 'Shoek\Console\Commands\Inspire', 'Shoek\Console\Commands\FutariUpdate', ];
LaravelのSentryで以下のエラーが出た。
The [login] attribute is required
原因はlogin_attributeの設定を間違えていたことだった。
'login_attribute' => 'email',
LaravelのSeederを使ってSentry用のユーザを一気に追加しようとしたら、以下のエラーメッセージが出た。
[Cartalyst\Sentry\Users\LoginRequiredException] A login is required for a user, none given.
そのときのSeederはこちら。
<?php use League\Csv\Reader; class UserSeeder extends Seeder { public function run() { $reader = Reader::createFromPath('./import/user.csv'); $csvs = $reader->setDelimiter("\t")->fetchAssoc($reader->fetchOne()); array_shift($csvs); foreach ($csvs as $csv) { Sentry::createUser($csv); } } } <|| CSVファイルの中身はこちら。 >|| username email password MyUserName1 MyEmailAddress1 MyPassword1 MyUserName2 MyEmailAddress2 MyPassword2
原因はSentry::createUserにactivatedの情報が無かったから。そこでCSVファイルの1行目にactivatedを足して、その値を1にした。
username email password activated MyUserName1 MyEmailAddress1 MyPassword1 1 MyUserName2 MyEmailAddress2 MyPassword2 1
migrateにどうしても失敗する場合がある。以下みたいなメッセージ。
php artisan migrate Do you really wish to run this command? yes {"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException", "message":"Class 'CreateUsersTable' not found", "file":"vendor\/laravel\/framework\/src\/Illuminate\/Database\/Migrations\/Migrator.php", "line":301}}
上記の場合だと「CreateUsersTable」が「vendor\composer」フォルダ内に登録されてないのが原因。
composer dump-autoload
で直る。