Laravel 5.4を入れる

まずcomposerを入れた状態で、
[vagrant@localhost laravel]$ php composer.phar create-project laravel/laravel blog “5.4.*”

replacement was suggested.
Writing lock file
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postUpdate
> php artisan optimize
Generating optimized class loader
The compiled services file has been removed.
> php artisan key:generate
Application key [base64:hogehoge] set successfully.

[vagrant@localhost laravel]$ ls
blog composer.phar
[vagrant@localhost laravel]$ cd blog
[vagrant@localhost blog]$ php artisan -V
Laravel Framework 5.4.36

vagrant@localhost blog]$ php artisan serve –host 192.168.35.10 –port 8000
Laravel development server started:

おおおおおおおおおおおお、いいねー

rm –recursive

The rm command does not set the directory for deletion unless the option is set.

If you also want to delete directories, specify the -r option.

[vagrant@localhost laravel]$ ls
blog  composer.phar
[vagrant@localhost laravel]$ rm -r blog
[vagrant@localhost laravel]$ ls
composer.phar

Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.

composer.jsonを編集します。

"require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "symfony/css-selector": "3.1.*",
        "symfony/dom-crawler": "3.1.*"
    },

updateします。
[vagrant@localhost blog]$ php composer.phar update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 0 installs, 0 updates, 27 removals
– Removing webmozart/assert (1.4.0)
– Removing theseer/tokenizer (1.1.2)
– Removing sebastian/version (2.0.1)
– Removing sebastian/resource-operations (2.0.1)
– Removing sebastian/recursion-context (3.0.0)
– Removing sebastian/object-reflector (1.1.1)
– Removing sebastian/object-enumerator (3.0.3)
– Removing sebastian/global-state (2.0.0)
– Removing sebastian/exporter (3.1.0)
– Removing sebastian/environment (4.1.0)
– Removing sebastian/diff (3.0.2)
– Removing sebastian/comparator (3.0.2)
– Removing sebastian/code-unit-reverse-lookup (1.0.1)
– Removing phpunit/phpunit (7.5.8)
– Removing phpunit/php-token-stream (3.0.1)
– Removing phpunit/php-timer (2.1.1)
– Removing phpunit/php-text-template (1.2.1)
– Removing phpunit/php-file-iterator (2.0.2)
– Removing phpunit/php-code-coverage (6.1.4)
– Removing phpspec/prophecy (1.8.0)
– Removing phpdocumentor/type-resolver (0.4.0)
– Removing phpdocumentor/reflection-docblock (4.3.0)
– Removing phpdocumentor/reflection-common (1.0.1)
– Removing phar-io/version (2.0.1)
– Removing phar-io/manifest (1.0.3)
– Removing myclabs/deep-copy (1.9.1)
– Removing doctrine/instantiator (1.2.0)
Writing lock file
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postUpdate
> php artisan optimize
Generating optimized class loader
The compiled class file has been removed.
[vagrant@localhost blog]$ php artisan -V
Laravel Framework version 5.3.31

なぜだあああああああああああああああああ

composerでlaravel5.3を入れる

まず、5.2と同じようにやってみる。
[vagrant@localhost laravel]$ curl -sS https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading…

Composer (version 1.8.5) successfully installed to: /home/vagrant/local/app/laravel/composer.phar
Use it: php composer.phar

[vagrant@localhost laravel]$ php composer.phar create-project laravel/laravel blog “5.3.*”

[UnexpectedValueException]
Could not parse version constraint “5.3.*”: Invalid version string ““5.3.*””

create-project [-s|–stability STABILITY] [–prefer-source] [–prefer-dist] [–repository REPOSITORY] [–repository-url REPOSITORY-URL] [–dev] [–no-dev] [–no-custom-installers] [–no-scripts] [–no-progress] [–no-secure-http] [–keep-vcs] [–remove-vcs] [–no-install] [–ignore-platform-reqs] [–] [] [] []

あれ、エラー??

公式を見ます。
https://readouble.com/laravel/5.3/ja/installation.html

ページ中段の「Composer Create-Project」を見ます。

[vagrant@localhost laravel]$ php composer.phar create-project –prefer-dist laravel/laravel blog “5.3.*”
Installing laravel/laravel (v5.3.30)
– Installing laravel/laravel (v5.3.30): Downloading (100%)

[vagrant@localhost blog]$ php artisan -V
Laravel Framework version 5.3.31

The “-o” option does not exist.

[vagrant@localhost blog]$ php artisan serve -host 192.168.35.10 -port 8000

[Symfony\Component\Console\Exception\RuntimeException]
The “-o” option does not exist.

ん?あれ、なんかおかしい。
Github issueを見てみましょう。
https://github.com/composer/composer/issues/6645

ハイフン”-“は一つではなく、複数と記載がありますね。
[vagrant@localhost blog]$ php artisan serve –host 192.168.35.10 –port 8000
Laravel development server started on http://192.168.35.10:8000/

お、とりあえず行けました! app/Http/Controllers/Controller.php はいいのかな。
とりあえず、5.2→5.3は良しとして、続いて5.3→5.4をやろうと思います。

laravel5.2→5.3 boot関数の引数削除

app/Providers/AuthServiceProvider.php<>

    public function boot(GateContract $gate)
    {
        $this->registerPolicies($gate);

        //
    }

public function boot()
    {
        $this->registerPolicies();

        //
    }

EvenServiceProvider.php

public function boot(DispatcherContract $events)
    {
        parent::boot($events);

        //
    }

public function boot()
    {
        parent::boot();

        //
    }

RouteServiceProvider.php

public function boot(Router $router)
    {
        //

        parent::boot($router);
    }
public function boot()
    {
        //

        parent::boot();
    }

再度アップデートしてみる。
[vagrant@localhost blog]$ php composer.phar update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postUpdate
> php artisan optimize
Generating optimized class loader
The compiled class file has been removed.

とりあえずエラーは出なくなりましたね。

slow_query and general_log

– general_log: all queries log
– slow_query_log: slow query, long-running queries logs
– long_query_time: slow query time, second

うーん、全部見れれば盤石のような気もするが、ケースバイケースのようにも見えますね。。

laravel5.2→5.3へのアップグレード

まず、composer.jsonを見てみます。

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.2.*"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~4.0",
        "symfony/css-selector": "2.8.*|3.0.*",
        "symfony/dom-crawler": "2.8.*|3.0.*"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-root-package-install": [
            "php -r \"copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ],
        "post-install-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postInstall",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postUpdate",
            "php artisan optimize"
        ]
    },
    "config": {
        "preferred-install": "dist"
    }
}

以下を修正します。
“laravel/framework”: “5.3.*”
“symfony/css-selector”: “2.8.*|3.1.*”,
“symfony/dom-crawler”: “2.8.*|3.1.*”

updateします。
[vagrant@localhost blog]$ php composer.phar update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 15 updates, 0 removals
– Updating symfony/var-dumper (v3.0.9 => v3.1.10): Downloading (100%)
– Updating symfony/translation (v3.0.9 => v3.1.10): Downloading (100%)
– Updating symfony/routing (v3.0.9 => v3.1.10): Downloading (100%)
– Updating symfony/process (v3.0.9 => v3.1.10): Downloading (100%)
– Updating symfony/debug (v3.0.9 => v3.1.10): Downloading (100%)
– Updating paragonie/random_compat (v1.4.3 => v2.0.18): Downloading (100%) – Updating symfony/http-foundation (v3.0.9 => v3.1.10): Downloading (100%) – Updating symfony/http-kernel (v3.0.9 => v3.1.10): Downloading (100%)
– Updating symfony/finder (v3.0.9 => v3.1.10): Downloading (100%)
– Updating symfony/console (v3.0.9 => v3.1.10): Downloading (100%)
– Installing ramsey/uuid (3.8.0): Loading from cache
– Updating nikic/php-parser (v2.1.1 => v3.1.5): Downloading (100%)
– Updating psy/psysh (v0.7.2 => v0.8.18): Downloading (100%)
– Updating laravel/framework (v5.2.45 => v5.3.31): Downloading (100%)
– Updating symfony/css-selector (v3.0.9 => v3.1.10): Downloading (100%)
– Updating symfony/dom-crawler (v3.0.9 => v3.1.10): Downloading (100%)
ramsey/uuid suggests installing ircmaxell/random-lib (Provides RandomLib for use with the RandomLibAdapter)
ramsey/uuid suggests installing ext-libsodium (Provides the PECL libsodium extension for use with the SodiumRandomGenerator)
ramsey/uuid suggests installing ext-uuid (Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator)
ramsey/uuid suggests installing moontoast/math (Provides support for converting UUID to 128-bit integer (in string form).)
ramsey/uuid suggests installing ramsey/uuid-doctrine (Allows the use of Ramsey\Uuid\Uuid as Doctrine field type.)
ramsey/uuid suggests installing ramsey/uuid-console (A console application for generating UUIDs with ramsey/uuid)
Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.
Writing lock file
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postUpdate
> php artisan optimize

[ErrorException]
Declaration of App\Providers\EventServiceProvider::boot(Illuminate\Contracts\Events\Dispatcher $events) should be compatible with Illuminate\Foundation\Support\Providers\EventServiceProvider::boot()

Script php artisan optimize handling the post-update-cmd event returned with error code 1

なにいいいいいいいいいいいいいいいいいいいいいいいい
app/Providers/AuthServiceProvider.php
app/Providers/EventServiceProvider.php
app/Providers/RouteServiceProvider.php
boot関数が変わったようです。 なるほどー、こうやって修正していくのね。。

centosにlaravel5.2をインストールする

まずcomposerを入れます

[vagrant@localhost laravel]$ curl -sS https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading...

Composer (version 1.8.4) successfully installed to: /home/vagrant/local/app/laravel/composer.phar
Use it: php composer.phar

[vagrant@localhost laravel]$ ls
composer.phar

続いてcomposerを入れます。
[vagrant@localhost laravel]$ php composer.phar create-project laravel/laravel blog “5.2.*”
Installing laravel/laravel (v5.2.31)
– Installing laravel/laravel (v5.2.31): Downloading (100%)
Created project in blog
> php -r “copy(‘.env.example’, ‘.env’);”
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 57 installs, 0 updates, 0 removals
– Installing symfony/polyfill-ctype (v1.11.0): Downloading (100%)
– Installing vlucas/phpdotenv (v2.6.1): Downloading (100%)
– Installing symfony/polyfill-mbstring (v1.11.0): Downloading (100%)
– Installing symfony/var-dumper (v3.0.9): Downloading (100%)
– Installing symfony/translation (v3.0.9): Downloading (100%)
– Installing symfony/routing (v3.0.9): Downloading (100%)
– Installing symfony/process (v3.0.9): Downloading (100%)
– Installing symfony/polyfill-util (v1.11.0): Downloading (100%)
– Installing symfony/polyfill-php56 (v1.11.0): Downloading (100%)
– Installing psr/log (1.1.0): Downloading (100%)
– Installing symfony/debug (v3.0.9): Downloading (100%)
– Installing paragonie/random_compat (v1.4.3): Downloading (100%)
– Installing symfony/http-foundation (v3.0.9): Downloading (100%)
– Installing symfony/event-dispatcher (v3.4.24): Downloading (100%)
– Installing symfony/http-kernel (v3.0.9): Downloading (100%)
– Installing symfony/finder (v3.0.9): Downloading (100%)
– Installing symfony/console (v3.0.9): Downloading (100%)
– Installing swiftmailer/swiftmailer (v5.4.12): Downloading (100%)
– Installing jakub-onderka/php-console-color (v0.2): Loading from cache
– Installing jakub-onderka/php-console-highlighter (v0.3.2): Loading from cache
– Installing dnoegel/php-xdg-base-dir (0.1): Loading from cache
– Installing nikic/php-parser (v2.1.1): Downloading (100%)
– Installing psy/psysh (v0.7.2): Downloading (100%)
– Installing nesbot/carbon (1.36.2): Downloading (100%)
– Installing mtdowling/cron-expression (v1.2.1): Downloading (100%)
– Installing monolog/monolog (1.24.0): Downloading (100%)
– Installing league/flysystem (1.0.51): Downloading (100%)
– Installing jeremeamia/superclosure (2.4.0): Downloading (100%)
– Installing doctrine/inflector (v1.3.0): Loading from cache
– Installing classpreloader/classpreloader (3.2.0): Downloading (100%)
– Installing laravel/framework (v5.2.45): Downloading (100%)
– Installing fzaninotto/faker (v1.8.0): Loading from cache
– Installing hamcrest/hamcrest-php (v1.2.2): Downloading (100%)
– Installing mockery/mockery (0.9.11): Downloading (100%)
– Installing sebastian/version (1.0.6): Downloading (100%)
– Installing sebastian/global-state (1.1.1): Downloading (100%)
– Installing sebastian/recursion-context (1.0.5): Downloading (100%)
– Installing sebastian/exporter (1.2.2): Downloading (100%)
– Installing sebastian/environment (1.3.8): Downloading (100%)
– Installing sebastian/diff (1.4.3): Downloading (100%)
– Installing sebastian/comparator (1.2.4): Downloading (100%)
– Installing symfony/yaml (v3.3.18): Downloading (100%)
– Installing doctrine/instantiator (1.2.0): Downloading (100%)
– Installing webmozart/assert (1.4.0): Loading from cache
– Installing phpdocumentor/reflection-common (1.0.1): Loading from cache
– Installing phpdocumentor/type-resolver (0.4.0): Loading from cache
– Installing phpdocumentor/reflection-docblock (4.3.0): Loading from cache
– Installing phpspec/prophecy (1.8.0): Loading from cache
– Installing phpunit/php-text-template (1.2.1): Loading from cache
– Installing phpunit/phpunit-mock-objects (2.3.8): Downloading (100%)
– Installing phpunit/php-timer (1.0.9): Downloading (100%)
– Installing phpunit/php-token-stream (1.4.12): Downloading (100%)
– Installing phpunit/php-file-iterator (1.4.5): Loading from cache
– Installing phpunit/php-code-coverage (2.2.4): Downloading (100%)
– Installing phpunit/phpunit (4.8.36): Downloading (100%)
– Installing symfony/css-selector (v3.0.9): Downloading (100%)
– Installing symfony/dom-crawler (v3.0.9): Downloading (100%)
symfony/var-dumper suggests installing ext-symfony_debug
symfony/translation suggests installing symfony/config
symfony/routing suggests installing symfony/config (For using the all-in-one router or any loader)
symfony/routing suggests installing symfony/expression-language (For using expression matching)
symfony/routing suggests installing doctrine/annotations (For using the annotation loader)
symfony/routing suggests installing symfony/dependency-injection (For loading routes from a service)
paragonie/random_compat suggests installing ext-libsodium (Provides a modern crypto API that can be used to generate random bytes.)
symfony/event-dispatcher suggests installing symfony/dependency-injection
symfony/http-kernel suggests installing symfony/browser-kit
symfony/http-kernel suggests installing symfony/class-loader
symfony/http-kernel suggests installing symfony/config
symfony/http-kernel suggests installing symfony/dependency-injection
psy/psysh suggests installing ext-posix (If you have PCNTL, you’ll want the POSIX extension as well.)
psy/psysh suggests installing ext-pdo-sqlite (The doc command requires SQLite to work.)
nesbot/carbon suggests installing friendsofphp/php-cs-fixer (Needed for the `composer phpcs` command. Allow to automatically fix code style.)
nesbot/carbon suggests installing phpstan/phpstan (Needed for the `composer phpstan` command. Allow to detect potential errors.)
monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
monolog/monolog suggests installing sentry/sentry (Allow sending log messages to a Sentry server)
monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server)
monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server)
monolog/monolog suggests installing php-amqplib/php-amqplib (Allow sending log messages to an AMQP server using php-amqplib)
monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required))
monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)
monolog/monolog suggests installing mongodb/mongodb (Allow sending log messages to a MongoDB server via PHP Driver)
monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB)
monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar)
monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome)
league/flysystem suggests installing league/flysystem-eventable-filesystem (Allows you to use EventableFilesystem)
league/flysystem suggests installing league/flysystem-rackspace (Allows you to use Rackspace Cloud Files)
league/flysystem suggests installing league/flysystem-azure (Allows you to use Windows Azure Blob storage)
league/flysystem suggests installing league/flysystem-webdav (Allows you to use WebDAV storage)
league/flysystem suggests installing league/flysystem-aws-s3-v2 (Allows you to use S3 storage with AWS SDK v2)
league/flysystem suggests installing league/flysystem-aws-s3-v3 (Allows you to use S3 storage with AWS SDK v3)
league/flysystem suggests installing spatie/flysystem-dropbox (Allows you to use Dropbox storage)
league/flysystem suggests installing srmklive/flysystem-dropbox-v2 (Allows you to use Dropbox storage for PHP 5 applications)
league/flysystem suggests installing league/flysystem-cached-adapter (Flysystem adapter decorator for metadata caching)
league/flysystem suggests installing league/flysystem-sftp (Allows you to use SFTP server storage via phpseclib)
league/flysystem suggests installing league/flysystem-ziparchive (Allows you to use ZipArchive adapter)
laravel/framework suggests installing aws/aws-sdk-php (Required to use the SQS queue driver and SES mail driver (~3.0).)
laravel/framework suggests installing doctrine/dbal (Required to rename columns and drop SQLite columns (~2.4).)
laravel/framework suggests installing guzzlehttp/guzzle (Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~5.3|~6.0).)
laravel/framework suggests installing league/flysystem-aws-s3-v3 (Required to use the Flysystem S3 driver (~1.0).)
laravel/framework suggests installing league/flysystem-rackspace (Required to use the Flysystem Rackspace driver (~1.0).)
laravel/framework suggests installing pda/pheanstalk (Required to use the beanstalk queue driver (~3.0).)
laravel/framework suggests installing predis/predis (Required to use the redis cache and queue drivers (~1.0).)
laravel/framework suggests installing pusher/pusher-php-server (Required to use the Pusher broadcast driver (~2.0).)
laravel/framework suggests installing symfony/psr-http-message-bridge (Required to use psr7 bridging features (0.2.*).)
sebastian/global-state suggests installing ext-uopz (*)
phpunit/phpunit-mock-objects suggests installing ext-soap (*)
phpunit/php-code-coverage suggests installing ext-xdebug (>=2.2.1)
phpunit/phpunit suggests installing phpunit/php-invoker (~1.1)
Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.
Writing lock file
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postUpdate
> php artisan optimize
Generating optimized class loader
> php artisan key:generate
Application key [base64:sUn17M/EiRwxEa7zX4KeegTu28WLYvPgTY47Sdj85/A=] set successfully.
[vagrant@localhost laravel]$ ls
blog composer.phar

入りました。

xargs

The command “xargs” reads the list from standard input or a file, and creates and executes a command line.
For example, the output of one command can be piped into an xargs command and specified as an argument of another command.

[vagrant@localhost ~]$ cd /var/www/cgi-bin
[vagrant@localhost cgi-bin]$ find . -name “*” | xargs grep select
grep: .: ディレクトリです
./app.cgi:my $sth = $db->prepare(“select * from name;”);