diff --git a/logging/api/README.md b/logging/README.md
similarity index 100%
rename from logging/api/README.md
rename to logging/README.md
diff --git a/logging/api/composer.json b/logging/api/composer.json
deleted file mode 100644
index 976abf9033..0000000000
--- a/logging/api/composer.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "require": {
- "google/cloud-logging": "^1.0",
- "symfony/console": "^3.0"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.8",
- "google/cloud-tools": "^0.6"
- },
- "autoload": {
- "psr-4": { "Google\\Cloud\\Samples\\Logging\\": "src" },
- "files": [
- "src/functions/log_entry_functions.php",
- "src/functions/sink_functions.php"
- ]
- }
-}
diff --git a/logging/api/logging.php b/logging/api/logging.php
deleted file mode 100644
index 78d205ac9f..0000000000
--- a/logging/api/logging.php
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env php
-add(new CreateSinkCommand());
-$application->add(new DeleteLoggerCommand());
-$application->add(new DeleteSinkCommand());
-$application->add(new ListEntriesCommand());
-$application->add(new ListSinksCommand());
-$application->add(new UpdateSinkCommand());
-$application->add(new WriteCommand());
-$application->run();
diff --git a/logging/api/src/BaseCommand.php b/logging/api/src/BaseCommand.php
deleted file mode 100644
index c52ecde985..0000000000
--- a/logging/api/src/BaseCommand.php
+++ /dev/null
@@ -1,78 +0,0 @@
-addOption(
- 'project',
- null,
- InputOption::VALUE_REQUIRED,
- 'The Google Cloud Platform project name to use for this command. ' .
- 'If omitted then the current gcloud project is assumed. ',
- $this->getProjectIdFromGcloud()
- );
- $this->addOption(
- 'logger',
- null,
- InputOption::VALUE_OPTIONAL,
- 'The name of the logger. By naming a logger, you can logically '
- . 'treat log entries in a logger; e.g. you can list or delete '
- . 'all the log entries by the name of the logger.',
- 'my_logger'
- );
- }
-
- protected function interact(InputInterface $input, OutputInterface $output)
- {
- if (empty($input->getOption("project"))) {
- throw new \Exception("Project ID not specified");
- }
- }
-
- /**
- * Detect the current project id configured by gcloud sdk.
- *
- * @return string|null detected projectId or null upon failure
- */
- private function getProjectIdFromGcloud()
- {
- exec(
- "gcloud config list --format 'value(core.project)' 2>/dev/null",
- $output,
- $return_var
- );
- if (0 === $return_var) {
- return array_pop($output);
- }
- return null;
- }
-}
diff --git a/logging/api/src/CreateSinkCommand.php b/logging/api/src/CreateSinkCommand.php
deleted file mode 100644
index fcff45f889..0000000000
--- a/logging/api/src/CreateSinkCommand.php
+++ /dev/null
@@ -1,82 +0,0 @@
-setName('create-sink')
- ->setDescription('Creates a Logging sink')
- ->addOption(
- 'sink',
- null,
- InputOption::VALUE_OPTIONAL,
- 'The name of the Logging sink',
- 'my_sink'
- )
- ->addOption(
- 'bucket',
- null,
- InputOption::VALUE_REQUIRED,
- 'The destination bucket name'
- )->addOption(
- 'filter',
- null,
- InputOption::VALUE_OPTIONAL,
- 'The filter expression for the sink',
- ''
- );
- $this->addCommonOptions();
- }
-
- protected function execute(InputInterface $input, OutputInterface $output)
- {
- $sinkName = $input->getOption('sink');
- $projectId = $input->getOption('project');
- $loggerName = $input->getOption('logger');
- $filter = $input->getOption('filter');
- $bucketName = $input->getOption('bucket');
- $destination = sprintf(
- 'storage.googleapis.com/%s',
- $bucketName
- );
- $loggerFullName = sprintf(
- 'projects/%s/logs/%s',
- $projectId,
- $loggerName
- );
- $filterString = sprintf('logName = "%s"', $loggerFullName);
- if (!empty($filter)) {
- $filterString .= ' AND ' . $filter;
- }
- create_sink($projectId, $sinkName, $destination, $filterString);
- printf("Created a sink '%s'." . PHP_EOL, $sinkName);
- }
-}
diff --git a/logging/api/src/DeleteLoggerCommand.php b/logging/api/src/DeleteLoggerCommand.php
deleted file mode 100644
index bffdf8306c..0000000000
--- a/logging/api/src/DeleteLoggerCommand.php
+++ /dev/null
@@ -1,46 +0,0 @@
-setName('delete-logger')
- ->setDescription('Deletes the given logger and its entries');
- $this->addCommonOptions();
- }
-
- protected function execute(InputInterface $input, OutputInterface $output)
- {
- $projectId = $input->getOption('project');
- $loggerName = $input->getOption('logger');
- delete_logger($projectId, $loggerName);
- printf("Deleted a logger '%s'." . PHP_EOL, $loggerName);
- }
-}
diff --git a/logging/api/src/DeleteSinkCommand.php b/logging/api/src/DeleteSinkCommand.php
deleted file mode 100644
index e402a44911..0000000000
--- a/logging/api/src/DeleteSinkCommand.php
+++ /dev/null
@@ -1,54 +0,0 @@
-setName('delete-sink')
- ->setDescription('Deletes a Logging sink')
- ->addOption(
- 'sink',
- null,
- InputOption::VALUE_OPTIONAL,
- 'The name of the Logging sink',
- 'my_sink'
- );
- $this->addCommonOptions();
- }
-
- protected function execute(InputInterface $input, OutputInterface $output)
- {
- $sinkName = $input->getOption('sink');
- $projectId = $input->getOption('project');
- delete_sink($projectId, $sinkName);
- printf("Deleted a sink '%s'." . PHP_EOL, $sinkName);
- }
-}
diff --git a/logging/api/src/ListEntriesCommand.php b/logging/api/src/ListEntriesCommand.php
deleted file mode 100644
index 60e9db1e9e..0000000000
--- a/logging/api/src/ListEntriesCommand.php
+++ /dev/null
@@ -1,68 +0,0 @@
-setName('list-entries')
- ->setDescription('Lists log entries in the logger');
- $this->addCommonOptions();
- }
-
- protected function execute(InputInterface $input, OutputInterface $output)
- {
- $projectId = $input->getOption('project');
- $loggerName = $input->getOption('logger');
- $entries = list_entries($projectId, $loggerName);
- foreach ($entries as $entry) {
- /* @var $entry \Google\Cloud\Logging\Entry */
- $entryInfo = $entry->info();
- if (isset($entryInfo['textPayload'])) {
- $entryText = $entryInfo['textPayload'];
- } else {
- $entryText = $this->formatJsonPayload($entryInfo['jsonPayload']);
- }
- printf(
- "%s : %s" . PHP_EOL,
- $entryInfo['timestamp'],
- $entryText
- );
- }
- }
-
- private function formatJsonPayload(array $jsonPayload)
- {
- $entryPayload = [];
- foreach ($jsonPayload as $key => $value) {
- $entryPayload[] = "$key=$value";
- }
- return '{' . implode(', ', $entryPayload) . '}';
- }
-}
diff --git a/logging/api/src/ListSinksCommand.php b/logging/api/src/ListSinksCommand.php
deleted file mode 100644
index 1768dad3b4..0000000000
--- a/logging/api/src/ListSinksCommand.php
+++ /dev/null
@@ -1,51 +0,0 @@
-setName('list-sinks')
- ->setDescription('Lists sinks');
- $this->addCommonOptions();
- }
-
- protected function execute(InputInterface $input, OutputInterface $output)
- {
- $projectId = $input->getOption('project');
- $sinks = list_sinks($projectId);
- foreach ($sinks as $sink) {
- /* @var $sink \Google\Cloud\Logging\Sink */
- foreach ($sink->info() as $key => $value) {
- print "$key:$value\n";
- }
- print PHP_EOL;
- }
- }
-}
diff --git a/logging/api/src/UpdateSinkCommand.php b/logging/api/src/UpdateSinkCommand.php
deleted file mode 100644
index 1c1bbf8774..0000000000
--- a/logging/api/src/UpdateSinkCommand.php
+++ /dev/null
@@ -1,71 +0,0 @@
-setName('update-sink')
- ->setDescription('Updates a Logging sink')
- ->addOption(
- 'sink',
- null,
- InputOption::VALUE_OPTIONAL,
- 'The name of the Logging sink',
- 'my_sink'
- )->addOption(
- 'filter',
- null,
- InputOption::VALUE_OPTIONAL,
- 'The filter expression for the sink',
- ''
- );
- $this->addCommonOptions();
- }
-
- protected function execute(InputInterface $input, OutputInterface $output)
- {
- $sinkName = $input->getOption('sink');
- $projectId = $input->getOption('project');
- $loggerName = $input->getOption('logger');
- $filter = $input->getOption('filter');
- $loggerFullName = sprintf(
- 'projects/%s/logs/%s',
- $projectId,
- $loggerName
- );
- $filterString = sprintf('logName = "%s"', $loggerFullName);
- if (!empty($filter)) {
- $filterString .= ' AND ' . $filter;
- }
- update_sink($projectId, $sinkName, $filterString);
- printf("Updated a sink '%s'." . PHP_EOL, $sinkName);
- }
-}
diff --git a/logging/api/src/WriteCommand.php b/logging/api/src/WriteCommand.php
deleted file mode 100644
index 7569e5c8fa..0000000000
--- a/logging/api/src/WriteCommand.php
+++ /dev/null
@@ -1,54 +0,0 @@
-setName('write')
- ->setDescription('Writes log entries to the given logger')
- ->addArgument(
- "message",
- InputArgument::OPTIONAL,
- "The log message to write",
- "Hello"
- );
- $this->addCommonOptions();
- }
-
- protected function execute(InputInterface $input, OutputInterface $output)
- {
- $message = $input->getArgument('message');
- $projectId = $input->getOption('project');
- $loggerName = $input->getOption('logger');
- write_log($projectId, $loggerName, $message);
- printf("Wrote a log to a logger '%s'." . PHP_EOL, $loggerName);
- }
-}
diff --git a/logging/api/test/CreateSinkCommandTest.php b/logging/api/test/CreateSinkCommandTest.php
deleted file mode 100644
index b0737b93dc..0000000000
--- a/logging/api/test/CreateSinkCommandTest.php
+++ /dev/null
@@ -1,93 +0,0 @@
- 0;
- self::$sinkName = sprintf("sink-%s", uniqid());
- }
-
- public function setUp()
- {
- if (!self::$hasCredentials) {
- $this->markTestSkipped('No application credentials were found.');
- }
-
- if (!$this->projectId = getenv('GOOGLE_PROJECT_ID')) {
- $this->markTestSkipped('No project ID');
- }
- }
-
- public function tearDown()
- {
- // Clean up the sink after the test
- $application = new Application();
- $application->add(new DeleteSinkCommand());
- $commandTester = new CommandTester($application->get('delete-sink'));
- $commandTester->execute(
- [
- '--project' => $this->projectId,
- '--sink' => self::$sinkName,
- ],
- ['interactive' => false]
- );
- }
-
- public function testCreateSink()
- {
- if (!$bucket = getenv('GOOGLE_BUCKET_NAME')) {
- $this->markTestSkipped('No GOOGLE_BUCKET_NAME envvar');
- }
- $application = new Application();
- $application->add(new CreateSinkCommand());
- $commandTester = new CommandTester($application->get('create-sink'));
- $loggerName = 'my_test_logger';
- $commandTester->execute(
- [
- '--project' => $this->projectId,
- '--logger' => $loggerName,
- '--bucket' => $bucket,
- '--sink' => self::$sinkName,
- ],
- ['interactive' => false]
- );
- $this->expectOutputRegex(
- sprintf("/Created a sink '%s'./", self::$sinkName)
- );
- }
-}
diff --git a/logging/api/test/DeleteLoggerCommandTest.php b/logging/api/test/DeleteLoggerCommandTest.php
deleted file mode 100644
index a1f316ef8c..0000000000
--- a/logging/api/test/DeleteLoggerCommandTest.php
+++ /dev/null
@@ -1,78 +0,0 @@
- 0;
- }
-
- public function setUp()
- {
- if (!self::$hasCredentials) {
- $this->markTestSkipped('No application credentials were found.');
- }
-
- if (!$this->projectId = getenv('GOOGLE_PROJECT_ID')) {
- $this->markTestSkipped('No project ID');
- }
- $application = new Application();
- $application->add(new WriteCommand());
- $commandTester = new CommandTester($application->get('write'));
- $commandTester->execute(
- [
- '--project' => $this->projectId,
- '--logger' => 'my_test_logger',
- 'message' => 'Test Message'
- ],
- ['interactive' => false]
- );
- sleep(2);
- }
-
- public function testDeleteLogger()
- {
- $application = new Application();
- $application->add(new DeleteLoggerCommand());
- $commandTester = new CommandTester($application->get('delete-logger'));
- $commandTester->execute(
- ['--project' => $this->projectId, '--logger' => 'my_test_logger'],
- ['interactive' => false]
- );
- $this->expectOutputRegex(
- sprintf("/Deleted a logger '%s'./", 'my_test_logger')
- );
- }
-}
diff --git a/logging/api/test/DeleteSinkCommandTest.php b/logging/api/test/DeleteSinkCommandTest.php
deleted file mode 100644
index 075be3f2fa..0000000000
--- a/logging/api/test/DeleteSinkCommandTest.php
+++ /dev/null
@@ -1,88 +0,0 @@
- 0;
- self::$sinkName = sprintf("sink-%s", uniqid());
- }
-
- public function setUp()
- {
- if (!self::$hasCredentials) {
- $this->markTestSkipped('No application credentials were found.');
- }
-
- if (!$this->projectId = getenv('GOOGLE_PROJECT_ID')) {
- $this->markTestSkipped('No project ID');
- }
- if (!$bucket = getenv('GOOGLE_BUCKET_NAME')) {
- $this->markTestSkipped('No GOOGLE_BUCKET_NAME envvar');
- }
- $application = new Application();
- $application->add(new CreateSinkCommand());
- $commandTester = new CommandTester($application->get('create-sink'));
- $loggerName = 'my_test_logger';
- $commandTester->execute(
- [
- '--project' => $this->projectId,
- '--logger' => $loggerName,
- '--bucket' => $bucket,
- '--sink' => self::$sinkName,
- ],
- ['interactive' => false]
- );
- }
-
- public function testDeleteSink()
- {
- $application = new Application();
- $application->add(new DeleteSinkCommand());
- $commandTester = new CommandTester($application->get('delete-sink'));
- $commandTester->execute(
- [
- '--project' => $this->projectId,
- '--sink' => self::$sinkName,
- ],
- ['interactive' => false]
- );
- $this->expectOutputRegex(
- sprintf("/Deleted a sink '%s'./", self::$sinkName)
- );
- }
-}
diff --git a/logging/api/test/ListEntriesCommandTest.php b/logging/api/test/ListEntriesCommandTest.php
deleted file mode 100644
index 02930026d8..0000000000
--- a/logging/api/test/ListEntriesCommandTest.php
+++ /dev/null
@@ -1,89 +0,0 @@
- 0;
- }
-
- public function setUp()
- {
- if (!self::$hasCredentials) {
- $this->markTestSkipped('No application credentials were found.');
- }
-
- if (!$this->projectId = getenv('GOOGLE_PROJECT_ID')) {
- $this->markTestSkipped('No project ID');
- }
-
- // up the default retry count
- $this->eventuallyConsistentRetryCount = 5;
- }
-
- public function testListEntries()
- {
- $application = new Application();
- $application->add(new WriteCommand());
- $application->add(new ListEntriesCommand());
-
- $writeCommandTester = new CommandTester($application->get('write'));
- $writeCommandTester->execute(
- [
- '--project' => $this->projectId,
- '--logger' => 'my_test_logger',
- 'message' => 'Test Message'
- ],
- ['interactive' => false]
- );
-
- $commandTester = new CommandTester($application->get('list-entries'));
- $this->runEventuallyConsistentTest(function () use ($commandTester) {
- ob_start();
- $commandTester->execute(
- [
- '--project' => $this->projectId,
- '--logger' => 'my_test_logger'
- ],
- ['interactive' => false]
- );
- $output = ob_get_clean();
- $this->assertRegexp('/: Test Message/', $output);
- }, 10);
- }
-}
diff --git a/logging/api/test/ListSinksCommandTest.php b/logging/api/test/ListSinksCommandTest.php
deleted file mode 100644
index 3fa5715531..0000000000
--- a/logging/api/test/ListSinksCommandTest.php
+++ /dev/null
@@ -1,103 +0,0 @@
- 0;
- self::$sinkName = sprintf("sink-%s", uniqid());
- }
-
- public function setUp()
- {
- if (!self::$hasCredentials) {
- $this->markTestSkipped('No application credentials were found.');
- }
-
- if (!$this->projectId = getenv('GOOGLE_PROJECT_ID')) {
- $this->markTestSkipped('No project ID');
- }
- if (!$bucket = getenv('GOOGLE_BUCKET_NAME')) {
- $this->markTestSkipped('No GOOGLE_BUCKET_NAME envvar');
- }
- $application = new Application();
- $application->add(new CreateSinkCommand());
- $commandTester = new CommandTester($application->get('create-sink'));
- $loggerName = 'my_test_logger';
- $commandTester->execute(
- [
- '--project' => $this->projectId,
- '--logger' => $loggerName,
- '--bucket' => $bucket,
- '--sink' => self::$sinkName,
- ],
- ['interactive' => false]
- );
- }
-
- public function tearDown()
- {
- // Clean up the sink after the test
- $application = new Application();
- $application->add(new DeleteSinkCommand());
- $commandTester = new CommandTester($application->get('delete-sink'));
- $commandTester->execute(
- [
- '--project' => $this->projectId,
- '--sink' => self::$sinkName,
- ],
- ['interactive' => false]
- );
- }
-
- public function testListSinks()
- {
- $application = new Application();
- $application->add(new ListSinksCommand());
- $commandTester = new CommandTester($application->get('list-sinks'));
- $commandTester->execute(
- [
- '--project' => $this->projectId,
- ],
- ['interactive' => false]
- );
- $this->expectOutputRegex(
- sprintf("/name:%s/", self::$sinkName)
- );
- }
-}
diff --git a/logging/api/test/UpdateSinkCommandTest.php b/logging/api/test/UpdateSinkCommandTest.php
deleted file mode 100644
index b3443258c4..0000000000
--- a/logging/api/test/UpdateSinkCommandTest.php
+++ /dev/null
@@ -1,140 +0,0 @@
- 0;
- self::$sinkName = sprintf("sink-%s", uniqid());
- }
-
- public function setUp()
- {
- if (!self::$hasCredentials) {
- $this->markTestSkipped('No application credentials were found.');
- }
-
- if (!$this->projectId = getenv('GOOGLE_PROJECT_ID')) {
- $this->markTestSkipped('No project ID');
- }
- if (!$bucket = getenv('GOOGLE_BUCKET_NAME')) {
- $this->markTestSkipped('No GOOGLE_BUCKET_NAME envvar');
- }
- $application = new Application();
- $application->add(new CreateSinkCommand());
- $commandTester = new CommandTester($application->get('create-sink'));
- $loggerName = 'my_test_logger';
- $commandTester->execute(
- [
- '--project' => $this->projectId,
- '--logger' => $loggerName,
- '--bucket' => $bucket,
- '--sink' => self::$sinkName,
- ],
- ['interactive' => false]
- );
- }
-
- public function tearDown()
- {
- // Clean up the sink after the test
- $application = new Application();
- $application->add(new DeleteSinkCommand());
- $commandTester = new CommandTester($application->get('delete-sink'));
- $commandTester->execute(
- [
- '--project' => $this->projectId,
- '--sink' => self::$sinkName,
- ],
- ['interactive' => false]
- );
- }
-
- public function testUpdateSink()
- {
- $application = new Application();
- $application->add(new UpdateSinkCommand());
- $commandTester = new CommandTester($application->get('update-sink'));
- $commandTester->execute(
- [
- '--project' => $this->projectId,
- '--sink' => self::$sinkName,
- '--logger' => 'updated-logger',
- ],
- ['interactive' => false]
- );
- $this->expectOutputRegex(
- sprintf("/Updated a sink '%s'./", self::$sinkName)
- );
- // Check the updated filter value
- $logging = new LoggingClient(['projectId' => $this->projectId]);
- $sink = $logging->sink(self::$sinkName);
- $sink->reload();
- $this->assertRegExp(
- sprintf(
- '|projects/%s/logs/%s|',
- $this->projectId,
- 'updated-logger'
- ),
- $sink->info['filter']);
- }
-
- public function testUpdateSinkWithFilter()
- {
- $application = new Application();
- $application->add(new UpdateSinkCommand());
- $commandTester = new CommandTester($application->get('update-sink'));
- $commandTester->execute(
- [
- '--project' => $this->projectId,
- '--sink' => self::$sinkName,
- '--filter' => 'severity >= INFO',
- ],
- ['interactive' => false]
- );
- $this->expectOutputRegex(
- sprintf("/Updated a sink '%s'./", self::$sinkName)
- );
- // Check the updated filter value
- $logging = new LoggingClient(['projectId' => $this->projectId]);
- $sink = $logging->sink(self::$sinkName);
- $sink->reload();
- $this->assertRegExp('/severity >= INFO/', $sink->info['filter']);
- }
-}
diff --git a/logging/api/test/WriteCommandTest.php b/logging/api/test/WriteCommandTest.php
deleted file mode 100644
index 7626690ea4..0000000000
--- a/logging/api/test/WriteCommandTest.php
+++ /dev/null
@@ -1,71 +0,0 @@
- 0;
- }
-
- public function setUp()
- {
- if (!self::$hasCredentials) {
- $this->markTestSkipped('No application credentials were found.');
- }
-
- if (!$this->projectId = getenv('GOOGLE_PROJECT_ID')) {
- $this->markTestSkipped('No project ID');
- }
- }
-
- public function testWrite()
- {
- $application = new Application();
- $application->add(new WriteCommand());
- $commandTester = new CommandTester($application->get('write'));
- $loggerName = 'my_test_logger';
- $message = 'Test Message';
- $commandTester->execute(
- [
- '--project' => $this->projectId,
- '--logger' => $loggerName,
- 'message' => $message
- ],
- ['interactive' => false]
- );
- $this->expectOutputRegex(
- sprintf("/Wrote a log to a logger '%s'./", $loggerName)
- );
- }
-}
diff --git a/logging/composer.json b/logging/composer.json
new file mode 100644
index 0000000000..ad1ba387ae
--- /dev/null
+++ b/logging/composer.json
@@ -0,0 +1,19 @@
+{
+ "require": {
+ "google/cloud-logging": "^1.5",
+ "symfony/console": "^3.0",
+ "monolog/monolog": "^1.23"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.8",
+ "google/cloud-tools": "^0.6"
+ },
+ "autoload": {
+ "files": [
+ "src/log_entry_functions.php",
+ "src/write_with_psr_logger.php",
+ "src/write_with_monolog_logger.php",
+ "src/sink_functions.php"
+ ]
+ }
+}
diff --git a/logging/api/composer.lock b/logging/composer.lock
similarity index 84%
rename from logging/api/composer.lock
rename to logging/composer.lock
index f6fc4abc9e..bc7a81a956 100644
--- a/logging/api/composer.lock
+++ b/logging/composer.lock
@@ -4,25 +4,28 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "content-hash": "0f5b019e6279532993e47dac6c847958",
+ "content-hash": "3d0f0dd6780bdd2c65f07312037ed96f",
"packages": [
{
"name": "firebase/php-jwt",
- "version": "v4.0.0",
+ "version": "v5.0.0",
"source": {
"type": "git",
"url": "https://github.com/firebase/php-jwt.git",
- "reference": "dccf163dc8ed7ed6a00afc06c51ee5186a428d35"
+ "reference": "9984a4d3a32ae7673d6971ea00bae9d0a1abba0e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/firebase/php-jwt/zipball/dccf163dc8ed7ed6a00afc06c51ee5186a428d35",
- "reference": "dccf163dc8ed7ed6a00afc06c51ee5186a428d35",
+ "url": "https://api.github.com/repos/firebase/php-jwt/zipball/9984a4d3a32ae7673d6971ea00bae9d0a1abba0e",
+ "reference": "9984a4d3a32ae7673d6971ea00bae9d0a1abba0e",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
+ "require-dev": {
+ "phpunit/phpunit": " 4.8.35"
+ },
"type": "library",
"autoload": {
"psr-4": {
@@ -47,25 +50,25 @@
],
"description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.",
"homepage": "https://github.com/firebase/php-jwt",
- "time": "2016-07-18T04:51:16+00:00"
+ "time": "2017-06-27T22:17:23+00:00"
},
{
"name": "google/auth",
- "version": "v0.11.1",
+ "version": "v1.1.0",
"source": {
"type": "git",
"url": "https://github.com/google/google-auth-library-php.git",
- "reference": "a240674b08a09949fd5597f7590b3ed83663a12d"
+ "reference": "548d27d670f0236dc5258fa4cdde6e7b63464cfd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/google/google-auth-library-php/zipball/a240674b08a09949fd5597f7590b3ed83663a12d",
- "reference": "a240674b08a09949fd5597f7590b3ed83663a12d",
+ "url": "https://api.github.com/repos/google/google-auth-library-php/zipball/548d27d670f0236dc5258fa4cdde6e7b63464cfd",
+ "reference": "548d27d670f0236dc5258fa4cdde6e7b63464cfd",
"shasum": ""
},
"require": {
- "firebase/php-jwt": "~2.0|~3.0|~4.0",
- "guzzlehttp/guzzle": "~5.3|~6.0",
+ "firebase/php-jwt": "~2.0|~3.0|~4.0|~5.0",
+ "guzzlehttp/guzzle": "~5.3.1|~6.0",
"guzzlehttp/psr7": "~1.2",
"php": ">=5.4",
"psr/cache": "^1.0",
@@ -77,9 +80,6 @@
},
"type": "library",
"autoload": {
- "classmap": [
- "src/"
- ],
"psr-4": {
"Google\\Auth\\": "src"
}
@@ -95,24 +95,24 @@
"google",
"oauth2"
],
- "time": "2016-11-02T14:59:14+00:00"
+ "time": "2017-10-10T17:01:45+00:00"
},
{
"name": "google/cloud-core",
- "version": "v1.5.1",
+ "version": "v1.10.0",
"source": {
"type": "git",
"url": "https://github.com/GoogleCloudPlatform/google-cloud-php-core.git",
- "reference": "145cc80d8eeb03ad677733ca2a5a9bcf4fc3def9"
+ "reference": "13cd745a71964f7c1e9190edeb14cdb994126d78"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/GoogleCloudPlatform/google-cloud-php-core/zipball/145cc80d8eeb03ad677733ca2a5a9bcf4fc3def9",
- "reference": "145cc80d8eeb03ad677733ca2a5a9bcf4fc3def9",
+ "url": "https://api.github.com/repos/GoogleCloudPlatform/google-cloud-php-core/zipball/13cd745a71964f7c1e9190edeb14cdb994126d78",
+ "reference": "13cd745a71964f7c1e9190edeb14cdb994126d78",
"shasum": ""
},
"require": {
- "google/auth": "^0.11",
+ "google/auth": "~0.9|^1.0",
"guzzlehttp/guzzle": "^5.3|^6.0",
"guzzlehttp/psr7": "^1.2",
"monolog/monolog": "~1",
@@ -123,13 +123,16 @@
"suggest": {
"symfony/lock": "Required for the Spanner cached based session pool. Please require the following commit: 3.3.x-dev#1ba6ac9"
},
+ "bin": [
+ "bin/google-cloud-batch"
+ ],
"type": "library",
"extra": {
"component": {
"id": "cloud-core",
"target": "GoogleCloudPlatform/google-cloud-php-core.git",
"path": "src/Core",
- "entry": null
+ "entry": "ServiceBuilder.php"
}
},
"autoload": {
@@ -142,28 +145,26 @@
"Apache-2.0"
],
"description": "Google Cloud PHP shared dependency, providing functionality useful to all components.",
- "time": "2017-05-25T15:15:05+00:00"
+ "time": "2017-10-17T17:11:46+00:00"
},
{
"name": "google/cloud-logging",
- "version": "v1.2.0",
+ "version": "v1.5.0",
"source": {
"type": "git",
"url": "https://github.com/GoogleCloudPlatform/google-cloud-php-logging.git",
- "reference": "1a5f4a5b2fe418aac23bc7bb962a9a831377233b"
+ "reference": "ef2c488c46eafaf6b8ea106e56ceb3e74add9693"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/GoogleCloudPlatform/google-cloud-php-logging/zipball/1a5f4a5b2fe418aac23bc7bb962a9a831377233b",
- "reference": "1a5f4a5b2fe418aac23bc7bb962a9a831377233b",
+ "url": "https://api.github.com/repos/GoogleCloudPlatform/google-cloud-php-logging/zipball/ef2c488c46eafaf6b8ea106e56ceb3e74add9693",
+ "reference": "ef2c488c46eafaf6b8ea106e56ceb3e74add9693",
"shasum": ""
},
"require": {
- "google/cloud-core": "^1.0"
- },
- "suggest": {
- "google/gax": "Required to support gRPC",
- "google/proto-client-php": "Required to support gRPC"
+ "google/cloud-core": "^1.0",
+ "google/gax": "^0.24",
+ "google/proto-client": "^0.24"
},
"type": "library",
"extra": {
@@ -184,20 +185,186 @@
"Apache-2.0"
],
"description": "Stackdriver Logging Client for PHP",
- "time": "2017-05-18T15:22:19+00:00"
+ "time": "2017-10-17T17:11:46+00:00"
+ },
+ {
+ "name": "google/gax",
+ "version": "0.24.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/googleapis/gax-php.git",
+ "reference": "94c4cf52f55115b7ee528474d72c7ed7829e1365"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/googleapis/gax-php/zipball/94c4cf52f55115b7ee528474d72c7ed7829e1365",
+ "reference": "94c4cf52f55115b7ee528474d72c7ed7829e1365",
+ "shasum": ""
+ },
+ "require": {
+ "google/auth": "~0.9|^1.0",
+ "google/protobuf": "^3.4",
+ "grpc/grpc": "^1.4",
+ "php": ">=5.5"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "4.8.*",
+ "squizlabs/php_codesniffer": "2.*"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Google\\GAX\\": "src/",
+ "Google\\GAX\\UnitTests\\": "tests/",
+ "Google\\": "src/generated/Google/",
+ "GPBMetadata\\": "src/generated/GPBMetadata/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Google API Extensions for PHP",
+ "homepage": "https://github.com/googleapis/gax-php",
+ "keywords": [
+ "google"
+ ],
+ "time": "2017-09-19T20:06:14+00:00"
+ },
+ {
+ "name": "google/proto-client",
+ "version": "0.24.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/googleapis/proto-client-php.git",
+ "reference": "2f36eaa4a2fa1ee6f66525c8f40741acb27cec52"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/googleapis/proto-client-php/zipball/2f36eaa4a2fa1ee6f66525c8f40741acb27cec52",
+ "reference": "2f36eaa4a2fa1ee6f66525c8f40741acb27cec52",
+ "shasum": ""
+ },
+ "require": {
+ "google/protobuf": "^3.3.2",
+ "php": ">=5.5"
+ },
+ "require-dev": {
+ "google/gax": ">=0.20.0",
+ "phpunit/phpunit": "4.8.*"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Google\\": "src/Google/",
+ "GPBMetadata\\": "src/GPBMetadata/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Generated proto and gRPC classes for Google Cloud Platform in PHP",
+ "homepage": "https://github.com/googleapis/proto-client-php",
+ "keywords": [
+ "google"
+ ],
+ "time": "2017-09-18T19:35:44+00:00"
+ },
+ {
+ "name": "google/protobuf",
+ "version": "v3.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/google/protobuf.git",
+ "reference": "b04e5cba356212e4e8c66c61bbe0c3a20537c5b9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/google/protobuf/zipball/b04e5cba356212e4e8c66c61bbe0c3a20537c5b9",
+ "reference": "b04e5cba356212e4e8c66c61bbe0c3a20537c5b9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.5.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": ">=4.8.0"
+ },
+ "suggest": {
+ "ext-bcmath": "Need to support JSON deserialization"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Google\\Protobuf\\": "php/src/Google/Protobuf",
+ "GPBMetadata\\Google\\Protobuf\\": "php/src/GPBMetadata/Google/Protobuf"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "proto library for PHP",
+ "homepage": "https://developers.google.com/protocol-buffers/",
+ "keywords": [
+ "proto"
+ ],
+ "time": "2017-09-14T19:24:28+00:00"
+ },
+ {
+ "name": "grpc/grpc",
+ "version": "1.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/grpc/grpc-php.git",
+ "reference": "8d190d91ddb9d980f685d9caf79bca62d7edc1e6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/grpc/grpc-php/zipball/8d190d91ddb9d980f685d9caf79bca62d7edc1e6",
+ "reference": "8d190d91ddb9d980f685d9caf79bca62d7edc1e6",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.5.0"
+ },
+ "require-dev": {
+ "google/auth": "v0.9"
+ },
+ "suggest": {
+ "ext-protobuf": "For better performance, install the protobuf C extension.",
+ "google/protobuf": "To get started using grpc quickly, install the native protobuf library."
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Grpc\\": "src/lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "description": "gRPC library for PHP",
+ "homepage": "https://grpc.io",
+ "keywords": [
+ "rpc"
+ ],
+ "time": "2017-09-11T20:50:39+00:00"
},
{
"name": "guzzlehttp/guzzle",
- "version": "6.2.3",
+ "version": "6.3.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
- "reference": "8d6c6cc55186db87b7dc5009827429ba4e9dc006"
+ "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/8d6c6cc55186db87b7dc5009827429ba4e9dc006",
- "reference": "8d6c6cc55186db87b7dc5009827429ba4e9dc006",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f4db5a78a5ea468d4831de7f0bf9d9415e348699",
+ "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699",
"shasum": ""
},
"require": {
@@ -207,9 +374,12 @@
},
"require-dev": {
"ext-curl": "*",
- "phpunit/phpunit": "^4.0",
+ "phpunit/phpunit": "^4.0 || ^5.0",
"psr/log": "^1.0"
},
+ "suggest": {
+ "psr/log": "Required for using the Log middleware"
+ },
"type": "library",
"extra": {
"branch-alias": {
@@ -246,7 +416,7 @@
"rest",
"web service"
],
- "time": "2017-02-28T22:50:30+00:00"
+ "time": "2017-06-22T18:50:49+00:00"
},
{
"name": "guzzlehttp/promises",
@@ -366,16 +536,16 @@
},
{
"name": "monolog/monolog",
- "version": "1.22.1",
+ "version": "1.23.0",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
- "reference": "1e044bc4b34e91743943479f1be7a1d5eb93add0"
+ "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1e044bc4b34e91743943479f1be7a1d5eb93add0",
- "reference": "1e044bc4b34e91743943479f1be7a1d5eb93add0",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd8c787753b3a2ad11bc60c063cff1358a32a3b4",
+ "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4",
"shasum": ""
},
"require": {
@@ -396,7 +566,7 @@
"phpunit/phpunit-mock-objects": "2.3.0",
"ruflin/elastica": ">=0.90 <3.0",
"sentry/sentry": "^0.13",
- "swiftmailer/swiftmailer": "~5.3"
+ "swiftmailer/swiftmailer": "^5.3|^6.0"
},
"suggest": {
"aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
@@ -440,7 +610,7 @@
"logging",
"psr-3"
],
- "time": "2017-03-13T07:08:03+00:00"
+ "time": "2017-06-19T01:22:40+00:00"
},
{
"name": "psr/cache",
@@ -587,16 +757,16 @@
},
{
"name": "rize/uri-template",
- "version": "0.3.1",
+ "version": "0.3.2",
"source": {
"type": "git",
"url": "https://github.com/rize/UriTemplate.git",
- "reference": "35cee84ae1c4fe0a6599392d7ca13977ff664bee"
+ "reference": "9e5fdd5c47147aa5adf7f760002ee591ed37b9ca"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/rize/UriTemplate/zipball/35cee84ae1c4fe0a6599392d7ca13977ff664bee",
- "reference": "35cee84ae1c4fe0a6599392d7ca13977ff664bee",
+ "url": "https://api.github.com/repos/rize/UriTemplate/zipball/9e5fdd5c47147aa5adf7f760002ee591ed37b9ca",
+ "reference": "9e5fdd5c47147aa5adf7f760002ee591ed37b9ca",
"shasum": ""
},
"require": {
@@ -627,24 +797,24 @@
"template",
"uri"
],
- "time": "2017-02-21T15:25:22+00:00"
+ "time": "2017-06-14T03:57:53+00:00"
},
{
"name": "symfony/console",
- "version": "v3.3.0",
+ "version": "v3.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "c80e63f3f5e3a331bfc25e6e9332b10422eb9b05"
+ "reference": "116bc56e45a8e5572e51eb43ab58c769a352366c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/c80e63f3f5e3a331bfc25e6e9332b10422eb9b05",
- "reference": "c80e63f3f5e3a331bfc25e6e9332b10422eb9b05",
+ "url": "https://api.github.com/repos/symfony/console/zipball/116bc56e45a8e5572e51eb43ab58c769a352366c",
+ "reference": "116bc56e45a8e5572e51eb43ab58c769a352366c",
"shasum": ""
},
"require": {
- "php": ">=5.5.9",
+ "php": "^5.5.9|>=7.0.8",
"symfony/debug": "~2.8|~3.0",
"symfony/polyfill-mbstring": "~1.0"
},
@@ -653,10 +823,10 @@
},
"require-dev": {
"psr/log": "~1.0",
+ "symfony/config": "~3.3",
"symfony/dependency-injection": "~3.3",
"symfony/event-dispatcher": "~2.8|~3.0",
"symfony/filesystem": "~2.8|~3.0",
- "symfony/http-kernel": "~2.8|~3.0",
"symfony/process": "~2.8|~3.0"
},
"suggest": {
@@ -695,24 +865,24 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
- "time": "2017-05-28T14:08:56+00:00"
+ "time": "2017-10-02T06:42:24+00:00"
},
{
"name": "symfony/debug",
- "version": "v3.3.0",
+ "version": "v3.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug.git",
- "reference": "ef5f19a7a68075a0bd05969a329ead3b0776fb7a"
+ "reference": "eb95d9ce8f18dcc1b3dfff00cb624c402be78ffd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/debug/zipball/ef5f19a7a68075a0bd05969a329ead3b0776fb7a",
- "reference": "ef5f19a7a68075a0bd05969a329ead3b0776fb7a",
+ "url": "https://api.github.com/repos/symfony/debug/zipball/eb95d9ce8f18dcc1b3dfff00cb624c402be78ffd",
+ "reference": "eb95d9ce8f18dcc1b3dfff00cb624c402be78ffd",
"shasum": ""
},
"require": {
- "php": ">=5.5.9",
+ "php": "^5.5.9|>=7.0.8",
"psr/log": "~1.0"
},
"conflict": {
@@ -751,20 +921,20 @@
],
"description": "Symfony Debug Component",
"homepage": "https://symfony.com",
- "time": "2017-05-27T16:02:27+00:00"
+ "time": "2017-10-02T06:42:24+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.3.0",
+ "version": "v1.6.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4"
+ "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/e79d363049d1c2128f133a2667e4f4190904f7f4",
- "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
+ "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
"shasum": ""
},
"require": {
@@ -776,7 +946,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.3-dev"
+ "dev-master": "1.6-dev"
}
},
"autoload": {
@@ -810,7 +980,7 @@
"portable",
"shim"
],
- "time": "2016-11-14T01:06:16+00:00"
+ "time": "2017-10-11T12:05:26+00:00"
}
],
"packages-dev": [
@@ -920,16 +1090,16 @@
},
{
"name": "phpdocumentor/reflection-common",
- "version": "1.0",
+ "version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionCommon.git",
- "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c"
+ "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
- "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
+ "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
"shasum": ""
},
"require": {
@@ -970,26 +1140,26 @@
"reflection",
"static analysis"
],
- "time": "2015-12-27T11:43:31+00:00"
+ "time": "2017-09-11T18:02:19+00:00"
},
{
"name": "phpdocumentor/reflection-docblock",
- "version": "3.1.1",
+ "version": "3.2.2",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e"
+ "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/8331b5efe816ae05461b7ca1e721c01b46bafb3e",
- "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/4aada1f93c72c35e22fb1383b47fee43b8f1d157",
+ "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157",
"shasum": ""
},
"require": {
"php": ">=5.5",
"phpdocumentor/reflection-common": "^1.0@dev",
- "phpdocumentor/type-resolver": "^0.2.0",
+ "phpdocumentor/type-resolver": "^0.3.0",
"webmozart/assert": "^1.0"
},
"require-dev": {
@@ -1015,24 +1185,24 @@
}
],
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
- "time": "2016-09-30T07:12:33+00:00"
+ "time": "2017-08-08T06:39:58+00:00"
},
{
"name": "phpdocumentor/type-resolver",
- "version": "0.2.1",
+ "version": "0.3.0",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb"
+ "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb",
- "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/fb3933512008d8162b3cdf9e18dba9309b7c3773",
+ "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773",
"shasum": ""
},
"require": {
- "php": ">=5.5",
+ "php": "^5.5 || ^7.0",
"phpdocumentor/reflection-common": "^1.0"
},
"require-dev": {
@@ -1062,26 +1232,26 @@
"email": "me@mikevanriel.com"
}
],
- "time": "2016-11-25T06:54:22+00:00"
+ "time": "2017-06-03T08:32:36+00:00"
},
{
"name": "phpspec/prophecy",
- "version": "v1.7.0",
+ "version": "v1.7.2",
"source": {
"type": "git",
"url": "https://github.com/phpspec/prophecy.git",
- "reference": "93d39f1f7f9326d746203c7c056f300f7f126073"
+ "reference": "c9b8c6088acd19d769d4cc0ffa60a9fe34344bd6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/93d39f1f7f9326d746203c7c056f300f7f126073",
- "reference": "93d39f1f7f9326d746203c7c056f300f7f126073",
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/c9b8c6088acd19d769d4cc0ffa60a9fe34344bd6",
+ "reference": "c9b8c6088acd19d769d4cc0ffa60a9fe34344bd6",
"shasum": ""
},
"require": {
"doctrine/instantiator": "^1.0.2",
"php": "^5.3|^7.0",
- "phpdocumentor/reflection-docblock": "^2.0|^3.0.2",
+ "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
"sebastian/comparator": "^1.1|^2.0",
"sebastian/recursion-context": "^1.0|^2.0|^3.0"
},
@@ -1092,7 +1262,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.6.x-dev"
+ "dev-master": "1.7.x-dev"
}
},
"autoload": {
@@ -1125,7 +1295,7 @@
"spy",
"stub"
],
- "time": "2017-03-02T20:05:34+00:00"
+ "time": "2017-09-04T11:05:03+00:00"
},
{
"name": "phpunit/php-code-coverage",
@@ -1377,16 +1547,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "4.8.35",
+ "version": "4.8.36",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "791b1a67c25af50e230f841ee7a9c6eba507dc87"
+ "reference": "46023de9a91eec7dfb06cc56cb4e260017298517"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/791b1a67c25af50e230f841ee7a9c6eba507dc87",
- "reference": "791b1a67c25af50e230f841ee7a9c6eba507dc87",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517",
+ "reference": "46023de9a91eec7dfb06cc56cb4e260017298517",
"shasum": ""
},
"require": {
@@ -1445,7 +1615,7 @@
"testing",
"xunit"
],
- "time": "2017-02-06T05:18:07+00:00"
+ "time": "2017-06-21T08:07:12+00:00"
},
{
"name": "phpunit/phpunit-mock-objects",
@@ -1877,20 +2047,20 @@
},
{
"name": "symfony/browser-kit",
- "version": "v3.3.0",
+ "version": "v3.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/browser-kit.git",
- "reference": "c2c8ceb1aa9dab9eae54e9150e6a588ce3e53be1"
+ "reference": "317d5bdf0127f06db7ea294186132b4f5b036839"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/browser-kit/zipball/c2c8ceb1aa9dab9eae54e9150e6a588ce3e53be1",
- "reference": "c2c8ceb1aa9dab9eae54e9150e6a588ce3e53be1",
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/317d5bdf0127f06db7ea294186132b4f5b036839",
+ "reference": "317d5bdf0127f06db7ea294186132b4f5b036839",
"shasum": ""
},
"require": {
- "php": ">=5.5.9",
+ "php": "^5.5.9|>=7.0.8",
"symfony/dom-crawler": "~2.8|~3.0"
},
"require-dev": {
@@ -1930,24 +2100,24 @@
],
"description": "Symfony BrowserKit Component",
"homepage": "https://symfony.com",
- "time": "2017-04-12T14:14:56+00:00"
+ "time": "2017-10-02T06:42:24+00:00"
},
{
"name": "symfony/dom-crawler",
- "version": "v3.3.0",
+ "version": "v3.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
- "reference": "fc2c588ce376e9fe04a7b8c79e3ec62fe32d95b1"
+ "reference": "40dafd42d5dad7fe5ad4e958413d92a207522ac1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/fc2c588ce376e9fe04a7b8c79e3ec62fe32d95b1",
- "reference": "fc2c588ce376e9fe04a7b8c79e3ec62fe32d95b1",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/40dafd42d5dad7fe5ad4e958413d92a207522ac1",
+ "reference": "40dafd42d5dad7fe5ad4e958413d92a207522ac1",
"shasum": ""
},
"require": {
- "php": ">=5.5.9",
+ "php": "^5.5.9|>=7.0.8",
"symfony/polyfill-mbstring": "~1.0"
},
"require-dev": {
@@ -1986,24 +2156,24 @@
],
"description": "Symfony DomCrawler Component",
"homepage": "https://symfony.com",
- "time": "2017-05-25T23:10:31+00:00"
+ "time": "2017-10-02T06:42:24+00:00"
},
{
"name": "symfony/process",
- "version": "v3.3.0",
+ "version": "v3.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "8e30690c67aafb6c7992d6d8eb0d707807dd3eaf"
+ "reference": "fdf89e57a723a29baf536e288d6e232c059697b1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/8e30690c67aafb6c7992d6d8eb0d707807dd3eaf",
- "reference": "8e30690c67aafb6c7992d6d8eb0d707807dd3eaf",
+ "url": "https://api.github.com/repos/symfony/process/zipball/fdf89e57a723a29baf536e288d6e232c059697b1",
+ "reference": "fdf89e57a723a29baf536e288d6e232c059697b1",
"shasum": ""
},
"require": {
- "php": ">=5.5.9"
+ "php": "^5.5.9|>=7.0.8"
},
"type": "library",
"extra": {
@@ -2035,24 +2205,24 @@
],
"description": "Symfony Process Component",
"homepage": "https://symfony.com",
- "time": "2017-05-22T12:32:03+00:00"
+ "time": "2017-10-02T06:42:24+00:00"
},
{
"name": "symfony/yaml",
- "version": "v3.3.0",
+ "version": "v3.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "885db865f6b2b918404a1fae28f9ac640f71f994"
+ "reference": "8c7bf1e7d5d6b05a690b715729cb4cd0c0a99c46"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/885db865f6b2b918404a1fae28f9ac640f71f994",
- "reference": "885db865f6b2b918404a1fae28f9ac640f71f994",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/8c7bf1e7d5d6b05a690b715729cb4cd0c0a99c46",
+ "reference": "8c7bf1e7d5d6b05a690b715729cb4cd0c0a99c46",
"shasum": ""
},
"require": {
- "php": ">=5.5.9"
+ "php": "^5.5.9|>=7.0.8"
},
"require-dev": {
"symfony/console": "~2.8|~3.0"
@@ -2090,7 +2260,7 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
- "time": "2017-05-28T10:56:20+00:00"
+ "time": "2017-10-05T14:43:42+00:00"
},
{
"name": "webmozart/assert",
diff --git a/logging/logging.php b/logging/logging.php
new file mode 100644
index 0000000000..290dcfdeb2
--- /dev/null
+++ b/logging/logging.php
@@ -0,0 +1,232 @@
+add(new Command('create-sink'))
+ ->setDefinition(clone $inputDefinition)
+ ->setDescription('Creates a Logging sink')
+ ->addOption('sink',
+ null,
+ InputOption::VALUE_OPTIONAL,
+ 'The name of the Logging sink',
+ 'my_sink'
+ )->addOption(
+ 'bucket',
+ null,
+ InputOption::VALUE_REQUIRED,
+ 'The destination bucket name'
+ )->addOption(
+ 'filter',
+ null,
+ InputOption::VALUE_OPTIONAL,
+ 'The filter expression for the sink',
+ ''
+ )->setCode(function ($input, $output) {
+ $projectId = $input->getArgument('project');
+ $sinkName = $input->getOption('sink');
+ $loggerName = $input->getOption('logger');
+ $filter = $input->getOption('filter');
+ $bucketName = $input->getOption('bucket');
+ $destination = sprintf(
+ 'storage.googleapis.com/%s',
+ $bucketName
+ );
+ $loggerFullName = sprintf(
+ 'projects/%s/logs/%s',
+ $projectId,
+ $loggerName
+ );
+ $filterString = sprintf('logName = "%s"', $loggerFullName);
+ if (!empty($filter)) {
+ $filterString .= ' AND ' . $filter;
+ }
+ create_sink($projectId, $sinkName, $destination, $filterString);
+ });
+
+$application->add(new Command('delete-logger'))
+ ->setDefinition($inputDefinition)
+ ->setDescription('Deletes the given logger and its entries')
+ ->setCode(function ($input, $output) {
+ $projectId = $input->getArgument('project');
+ $loggerName = $input->getOption('logger');
+ delete_logger($projectId, $loggerName);
+ });
+
+$application->add(new Command('delete-sink'))
+ ->setDefinition(clone $inputDefinition)
+ ->setDescription('Deletes a Logging sink')
+ ->addOption(
+ 'sink',
+ null,
+ InputOption::VALUE_OPTIONAL,
+ 'The name of the Logging sink',
+ 'my_sink'
+ )->setCode(function ($input, $output) {
+ $projectId = $input->getArgument('project');
+ $sinkName = $input->getOption('sink');
+ delete_sink($projectId, $sinkName);
+ });
+
+$application->add(new Command('list-entries'))
+ ->setDefinition($inputDefinition)
+ ->setDescription('Lists log entries in the logger')
+ ->setCode(function ($input, $output) {
+ $projectId = $input->getArgument('project');
+ $loggerName = $input->getOption('logger');
+ $entries = list_entries($projectId, $loggerName);
+ });
+
+$application->add(new Command('list-sinks'))
+ ->setDefinition($inputDefinition)
+ ->setDescription('Lists sinks')
+ ->setCode(function ($input, $output) {
+ $projectId = $input->getArgument('project');
+ $sinks = list_sinks($projectId);
+ });
+
+$application->add(new Command('update-sink'))
+ ->setDefinition(clone $inputDefinition)
+ ->setDescription('Updates a Logging sink')
+ ->addOption(
+ 'sink',
+ null,
+ InputOption::VALUE_OPTIONAL,
+ 'The name of the Logging sink',
+ 'my_sink'
+ )->addOption(
+ 'filter',
+ null,
+ InputOption::VALUE_OPTIONAL,
+ 'The filter expression for the sink',
+ ''
+ )->setCode(function ($input, $output) {
+ $projectId = $input->getArgument('project');
+ $sinkName = $input->getOption('sink');
+ $loggerName = $input->getOption('logger');
+ $filter = $input->getOption('filter');
+ $loggerFullName = sprintf(
+ 'projects/%s/logs/%s',
+ $projectId,
+ $loggerName
+ );
+ $filterString = sprintf('logName = "%s"', $loggerFullName);
+ if (!empty($filter)) {
+ $filterString .= ' AND ' . $filter;
+ }
+ update_sink($projectId, $sinkName, $filterString);
+ });
+
+$application->add(new Command('write'))
+ ->setDefinition(clone $inputDefinition)
+ ->setDescription('Writes log entries to the given logger')
+ ->addArgument(
+ 'message',
+ InputArgument::OPTIONAL,
+ 'The log message to write',
+ 'Hello'
+ )
+ ->setCode(function ($input, $output) {
+ $projectId = $input->getArgument('project');
+ $message = $input->getArgument('message');
+ $loggerName = $input->getOption('logger');
+ write_log($projectId, $loggerName, $message);
+ });
+
+$application->add(new Command('write-psr'))
+ ->setDefinition(clone $inputDefinition)
+ ->setDescription('Writes log entries using a PSR logger')
+ ->addArgument(
+ 'message',
+ InputArgument::OPTIONAL,
+ 'The log message to write',
+ 'Hello'
+ )
+ ->addOption(
+ 'level',
+ null,
+ InputOption::VALUE_REQUIRED,
+ 'The log level for the PSR logger',
+ \Psr\Log\LogLevel::WARNING
+ )
+ ->setCode(function ($input, $output) {
+ $projectId = $input->getArgument('project');
+ $message = $input->getArgument('message');
+ $loggerName = $input->getOption('logger');
+ $level = $input->getOption('level');
+ write_with_psr_logger($projectId, $loggerName, $message, $level);
+ });
+
+$application->add(new Command('write-monolog'))
+ ->setDefinition(clone $inputDefinition)
+ ->setDescription('Writes log entries using a Monolog logger')
+ ->addArgument(
+ 'message',
+ InputArgument::OPTIONAL,
+ 'The log message to write',
+ 'Hello'
+ )
+ ->addOption(
+ 'level',
+ null,
+ InputOption::VALUE_REQUIRED,
+ 'The log level for the PSR logger',
+ \Psr\Log\LogLevel::WARNING
+ )
+ ->setCode(function ($input, $output) {
+ $projectId = $input->getArgument('project');
+ $message = $input->getArgument('message');
+ $loggerName = $input->getOption('logger');
+ $level = $input->getOption('level');
+ write_with_monolog_logger($projectId, $loggerName, $message, $level);
+ });
+
+// for testing
+if (getenv('PHPUNIT_TESTS') === '1') {
+ return $application;
+}
+
+$application->run();
diff --git a/logging/api/phpunit.xml.dist b/logging/phpunit.xml.dist
similarity index 94%
rename from logging/api/phpunit.xml.dist
rename to logging/phpunit.xml.dist
index 2af2b09570..54b7be5557 100644
--- a/logging/api/phpunit.xml.dist
+++ b/logging/phpunit.xml.dist
@@ -28,4 +28,7 @@
./src
+
+
+
diff --git a/logging/quickstart/quickstart.php b/logging/quickstart.php
similarity index 100%
rename from logging/quickstart/quickstart.php
rename to logging/quickstart.php
diff --git a/logging/quickstart/composer.json b/logging/quickstart/composer.json
deleted file mode 100644
index 6ff2235dcd..0000000000
--- a/logging/quickstart/composer.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "require": {
- "php": ">=5.4",
- "google/cloud-logging": "^1.0"
- },
- "require-dev": {
- "phpunit/phpunit": "~4"
- }
-}
diff --git a/logging/quickstart/composer.lock b/logging/quickstart/composer.lock
deleted file mode 100644
index 9f7ec0afcf..0000000000
--- a/logging/quickstart/composer.lock
+++ /dev/null
@@ -1,1760 +0,0 @@
-{
- "_readme": [
- "This file locks the dependencies of your project to a known state",
- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
- "This file is @generated automatically"
- ],
- "content-hash": "84333b22b2d827650452d44b40f6a3e9",
- "packages": [
- {
- "name": "firebase/php-jwt",
- "version": "v4.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/firebase/php-jwt.git",
- "reference": "dccf163dc8ed7ed6a00afc06c51ee5186a428d35"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/firebase/php-jwt/zipball/dccf163dc8ed7ed6a00afc06c51ee5186a428d35",
- "reference": "dccf163dc8ed7ed6a00afc06c51ee5186a428d35",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Firebase\\JWT\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Neuman Vong",
- "email": "neuman+pear@twilio.com",
- "role": "Developer"
- },
- {
- "name": "Anant Narayanan",
- "email": "anant@php.net",
- "role": "Developer"
- }
- ],
- "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.",
- "homepage": "https://github.com/firebase/php-jwt",
- "time": "2016-07-18T04:51:16+00:00"
- },
- {
- "name": "google/auth",
- "version": "v0.11.1",
- "source": {
- "type": "git",
- "url": "https://github.com/google/google-auth-library-php.git",
- "reference": "a240674b08a09949fd5597f7590b3ed83663a12d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/google/google-auth-library-php/zipball/a240674b08a09949fd5597f7590b3ed83663a12d",
- "reference": "a240674b08a09949fd5597f7590b3ed83663a12d",
- "shasum": ""
- },
- "require": {
- "firebase/php-jwt": "~2.0|~3.0|~4.0",
- "guzzlehttp/guzzle": "~5.3|~6.0",
- "guzzlehttp/psr7": "~1.2",
- "php": ">=5.4",
- "psr/cache": "^1.0",
- "psr/http-message": "^1.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^1.11",
- "phpunit/phpunit": "3.7.*"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ],
- "psr-4": {
- "Google\\Auth\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "description": "Google Auth Library for PHP",
- "homepage": "http://github.com/google/google-auth-library-php",
- "keywords": [
- "Authentication",
- "google",
- "oauth2"
- ],
- "time": "2016-11-02T14:59:14+00:00"
- },
- {
- "name": "google/cloud-core",
- "version": "v1.5.1",
- "source": {
- "type": "git",
- "url": "https://github.com/GoogleCloudPlatform/google-cloud-php-core.git",
- "reference": "145cc80d8eeb03ad677733ca2a5a9bcf4fc3def9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/GoogleCloudPlatform/google-cloud-php-core/zipball/145cc80d8eeb03ad677733ca2a5a9bcf4fc3def9",
- "reference": "145cc80d8eeb03ad677733ca2a5a9bcf4fc3def9",
- "shasum": ""
- },
- "require": {
- "google/auth": "^0.11",
- "guzzlehttp/guzzle": "^5.3|^6.0",
- "guzzlehttp/psr7": "^1.2",
- "monolog/monolog": "~1",
- "php": ">=5.5",
- "psr/http-message": "1.0.*",
- "rize/uri-template": "~0.3"
- },
- "suggest": {
- "symfony/lock": "Required for the Spanner cached based session pool. Please require the following commit: 3.3.x-dev#1ba6ac9"
- },
- "type": "library",
- "extra": {
- "component": {
- "id": "cloud-core",
- "target": "GoogleCloudPlatform/google-cloud-php-core.git",
- "path": "src/Core",
- "entry": null
- }
- },
- "autoload": {
- "psr-4": {
- "Google\\Cloud\\Core\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "description": "Google Cloud PHP shared dependency, providing functionality useful to all components.",
- "time": "2017-05-25T15:15:05+00:00"
- },
- {
- "name": "google/cloud-logging",
- "version": "v1.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/GoogleCloudPlatform/google-cloud-php-logging.git",
- "reference": "1a5f4a5b2fe418aac23bc7bb962a9a831377233b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/GoogleCloudPlatform/google-cloud-php-logging/zipball/1a5f4a5b2fe418aac23bc7bb962a9a831377233b",
- "reference": "1a5f4a5b2fe418aac23bc7bb962a9a831377233b",
- "shasum": ""
- },
- "require": {
- "google/cloud-core": "^1.0"
- },
- "suggest": {
- "google/gax": "Required to support gRPC",
- "google/proto-client-php": "Required to support gRPC"
- },
- "type": "library",
- "extra": {
- "component": {
- "id": "cloud-logging",
- "target": "GoogleCloudPlatform/google-cloud-php-logging.git",
- "path": "src/Logging",
- "entry": "LoggingClient.php"
- }
- },
- "autoload": {
- "psr-4": {
- "Google\\Cloud\\Logging\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "description": "Stackdriver Logging Client for PHP",
- "time": "2017-05-18T15:22:19+00:00"
- },
- {
- "name": "guzzlehttp/guzzle",
- "version": "6.2.3",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/guzzle.git",
- "reference": "8d6c6cc55186db87b7dc5009827429ba4e9dc006"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/8d6c6cc55186db87b7dc5009827429ba4e9dc006",
- "reference": "8d6c6cc55186db87b7dc5009827429ba4e9dc006",
- "shasum": ""
- },
- "require": {
- "guzzlehttp/promises": "^1.0",
- "guzzlehttp/psr7": "^1.4",
- "php": ">=5.5"
- },
- "require-dev": {
- "ext-curl": "*",
- "phpunit/phpunit": "^4.0",
- "psr/log": "^1.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "6.2-dev"
- }
- },
- "autoload": {
- "files": [
- "src/functions_include.php"
- ],
- "psr-4": {
- "GuzzleHttp\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "description": "Guzzle is a PHP HTTP client library",
- "homepage": "http://guzzlephp.org/",
- "keywords": [
- "client",
- "curl",
- "framework",
- "http",
- "http client",
- "rest",
- "web service"
- ],
- "time": "2017-02-28T22:50:30+00:00"
- },
- {
- "name": "guzzlehttp/promises",
- "version": "v1.3.1",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/promises.git",
- "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
- "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "GuzzleHttp\\Promise\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "description": "Guzzle promises library",
- "keywords": [
- "promise"
- ],
- "time": "2016-12-20T10:07:11+00:00"
- },
- {
- "name": "guzzlehttp/psr7",
- "version": "1.4.2",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/psr7.git",
- "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
- "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
- "shasum": ""
- },
- "require": {
- "php": ">=5.4.0",
- "psr/http-message": "~1.0"
- },
- "provide": {
- "psr/http-message-implementation": "1.0"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "GuzzleHttp\\Psr7\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- },
- {
- "name": "Tobias Schultze",
- "homepage": "https://github.com/Tobion"
- }
- ],
- "description": "PSR-7 message implementation that also provides common utility methods",
- "keywords": [
- "http",
- "message",
- "request",
- "response",
- "stream",
- "uri",
- "url"
- ],
- "time": "2017-03-20T17:10:46+00:00"
- },
- {
- "name": "monolog/monolog",
- "version": "1.22.1",
- "source": {
- "type": "git",
- "url": "https://github.com/Seldaek/monolog.git",
- "reference": "1e044bc4b34e91743943479f1be7a1d5eb93add0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1e044bc4b34e91743943479f1be7a1d5eb93add0",
- "reference": "1e044bc4b34e91743943479f1be7a1d5eb93add0",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0",
- "psr/log": "~1.0"
- },
- "provide": {
- "psr/log-implementation": "1.0.0"
- },
- "require-dev": {
- "aws/aws-sdk-php": "^2.4.9 || ^3.0",
- "doctrine/couchdb": "~1.0@dev",
- "graylog2/gelf-php": "~1.0",
- "jakub-onderka/php-parallel-lint": "0.9",
- "php-amqplib/php-amqplib": "~2.4",
- "php-console/php-console": "^3.1.3",
- "phpunit/phpunit": "~4.5",
- "phpunit/phpunit-mock-objects": "2.3.0",
- "ruflin/elastica": ">=0.90 <3.0",
- "sentry/sentry": "^0.13",
- "swiftmailer/swiftmailer": "~5.3"
- },
- "suggest": {
- "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
- "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
- "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
- "ext-mongo": "Allow sending log messages to a MongoDB server",
- "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
- "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
- "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
- "php-console/php-console": "Allow sending log messages to Google Chrome",
- "rollbar/rollbar": "Allow sending log messages to Rollbar",
- "ruflin/elastica": "Allow sending log messages to an Elastic Search server",
- "sentry/sentry": "Allow sending log messages to a Sentry server"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Monolog\\": "src/Monolog"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "http://seld.be"
- }
- ],
- "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
- "homepage": "http://github.com/Seldaek/monolog",
- "keywords": [
- "log",
- "logging",
- "psr-3"
- ],
- "time": "2017-03-13T07:08:03+00:00"
- },
- {
- "name": "psr/cache",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/cache.git",
- "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
- "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Cache\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interface for caching libraries",
- "keywords": [
- "cache",
- "psr",
- "psr-6"
- ],
- "time": "2016-08-06T20:24:11+00:00"
- },
- {
- "name": "psr/http-message",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-message.git",
- "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
- "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Message\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interface for HTTP messages",
- "homepage": "https://github.com/php-fig/http-message",
- "keywords": [
- "http",
- "http-message",
- "psr",
- "psr-7",
- "request",
- "response"
- ],
- "time": "2016-08-06T14:39:51+00:00"
- },
- {
- "name": "psr/log",
- "version": "1.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/log.git",
- "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
- "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Log\\": "Psr/Log/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interface for logging libraries",
- "homepage": "https://github.com/php-fig/log",
- "keywords": [
- "log",
- "psr",
- "psr-3"
- ],
- "time": "2016-10-10T12:19:37+00:00"
- },
- {
- "name": "rize/uri-template",
- "version": "0.3.1",
- "source": {
- "type": "git",
- "url": "https://github.com/rize/UriTemplate.git",
- "reference": "35cee84ae1c4fe0a6599392d7ca13977ff664bee"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/rize/UriTemplate/zipball/35cee84ae1c4fe0a6599392d7ca13977ff664bee",
- "reference": "35cee84ae1c4fe0a6599392d7ca13977ff664bee",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.0.0"
- },
- "type": "library",
- "autoload": {
- "psr-0": {
- "Rize\\UriTemplate": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marut K",
- "homepage": "http://twitter.com/rezigned"
- }
- ],
- "description": "PHP URI Template (RFC 6570) supports both expansion & extraction",
- "keywords": [
- "RFC 6570",
- "template",
- "uri"
- ],
- "time": "2017-02-21T15:25:22+00:00"
- }
- ],
- "packages-dev": [
- {
- "name": "doctrine/instantiator",
- "version": "1.0.5",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/instantiator.git",
- "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
- "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3,<8.0-DEV"
- },
- "require-dev": {
- "athletic/athletic": "~0.1.8",
- "ext-pdo": "*",
- "ext-phar": "*",
- "phpunit/phpunit": "~4.0",
- "squizlabs/php_codesniffer": "~2.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com",
- "homepage": "http://ocramius.github.com/"
- }
- ],
- "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
- "homepage": "https://github.com/doctrine/instantiator",
- "keywords": [
- "constructor",
- "instantiate"
- ],
- "time": "2015-06-14T21:17:01+00:00"
- },
- {
- "name": "phpdocumentor/reflection-common",
- "version": "1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
- "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
- "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.6"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": [
- "src"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jaap van Otterdijk",
- "email": "opensource@ijaap.nl"
- }
- ],
- "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
- "homepage": "http://www.phpdoc.org",
- "keywords": [
- "FQSEN",
- "phpDocumentor",
- "phpdoc",
- "reflection",
- "static analysis"
- ],
- "time": "2015-12-27T11:43:31+00:00"
- },
- {
- "name": "phpdocumentor/reflection-docblock",
- "version": "3.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/8331b5efe816ae05461b7ca1e721c01b46bafb3e",
- "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5",
- "phpdocumentor/reflection-common": "^1.0@dev",
- "phpdocumentor/type-resolver": "^0.2.0",
- "webmozart/assert": "^1.0"
- },
- "require-dev": {
- "mockery/mockery": "^0.9.4",
- "phpunit/phpunit": "^4.4"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": [
- "src/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
- }
- ],
- "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
- "time": "2016-09-30T07:12:33+00:00"
- },
- {
- "name": "phpdocumentor/type-resolver",
- "version": "0.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb",
- "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5",
- "phpdocumentor/reflection-common": "^1.0"
- },
- "require-dev": {
- "mockery/mockery": "^0.9.4",
- "phpunit/phpunit": "^5.2||^4.8.24"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": [
- "src/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
- }
- ],
- "time": "2016-11-25T06:54:22+00:00"
- },
- {
- "name": "phpspec/prophecy",
- "version": "v1.7.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpspec/prophecy.git",
- "reference": "93d39f1f7f9326d746203c7c056f300f7f126073"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/93d39f1f7f9326d746203c7c056f300f7f126073",
- "reference": "93d39f1f7f9326d746203c7c056f300f7f126073",
- "shasum": ""
- },
- "require": {
- "doctrine/instantiator": "^1.0.2",
- "php": "^5.3|^7.0",
- "phpdocumentor/reflection-docblock": "^2.0|^3.0.2",
- "sebastian/comparator": "^1.1|^2.0",
- "sebastian/recursion-context": "^1.0|^2.0|^3.0"
- },
- "require-dev": {
- "phpspec/phpspec": "^2.5|^3.2",
- "phpunit/phpunit": "^4.8 || ^5.6.5"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.6.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Prophecy\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Konstantin Kudryashov",
- "email": "ever.zet@gmail.com",
- "homepage": "http://everzet.com"
- },
- {
- "name": "Marcello Duarte",
- "email": "marcello.duarte@gmail.com"
- }
- ],
- "description": "Highly opinionated mocking framework for PHP 5.3+",
- "homepage": "https://github.com/phpspec/prophecy",
- "keywords": [
- "Double",
- "Dummy",
- "fake",
- "mock",
- "spy",
- "stub"
- ],
- "time": "2017-03-02T20:05:34+00:00"
- },
- {
- "name": "phpunit/php-code-coverage",
- "version": "2.2.4",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979",
- "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3",
- "phpunit/php-file-iterator": "~1.3",
- "phpunit/php-text-template": "~1.2",
- "phpunit/php-token-stream": "~1.3",
- "sebastian/environment": "^1.3.2",
- "sebastian/version": "~1.0"
- },
- "require-dev": {
- "ext-xdebug": ">=2.1.4",
- "phpunit/phpunit": "~4"
- },
- "suggest": {
- "ext-dom": "*",
- "ext-xdebug": ">=2.2.1",
- "ext-xmlwriter": "*"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.2.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sb@sebastian-bergmann.de",
- "role": "lead"
- }
- ],
- "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
- "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
- "keywords": [
- "coverage",
- "testing",
- "xunit"
- ],
- "time": "2015-10-06T15:47:00+00:00"
- },
- {
- "name": "phpunit/php-file-iterator",
- "version": "1.4.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
- "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sb@sebastian-bergmann.de",
- "role": "lead"
- }
- ],
- "description": "FilterIterator implementation that filters files based on a list of suffixes.",
- "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
- "keywords": [
- "filesystem",
- "iterator"
- ],
- "time": "2016-10-03T07:40:28+00:00"
- },
- {
- "name": "phpunit/php-text-template",
- "version": "1.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Simple template engine.",
- "homepage": "https://github.com/sebastianbergmann/php-text-template/",
- "keywords": [
- "template"
- ],
- "time": "2015-06-21T13:50:34+00:00"
- },
- {
- "name": "phpunit/php-timer",
- "version": "1.0.9",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
- "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
- "shasum": ""
- },
- "require": {
- "php": "^5.3.3 || ^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sb@sebastian-bergmann.de",
- "role": "lead"
- }
- ],
- "description": "Utility class for timing",
- "homepage": "https://github.com/sebastianbergmann/php-timer/",
- "keywords": [
- "timer"
- ],
- "time": "2017-02-26T11:10:40+00:00"
- },
- {
- "name": "phpunit/php-token-stream",
- "version": "1.4.11",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-token-stream.git",
- "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e03f8f67534427a787e21a385a67ec3ca6978ea7",
- "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7",
- "shasum": ""
- },
- "require": {
- "ext-tokenizer": "*",
- "php": ">=5.3.3"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Wrapper around PHP's tokenizer extension.",
- "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
- "keywords": [
- "tokenizer"
- ],
- "time": "2017-02-27T10:12:30+00:00"
- },
- {
- "name": "phpunit/phpunit",
- "version": "4.8.35",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "791b1a67c25af50e230f841ee7a9c6eba507dc87"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/791b1a67c25af50e230f841ee7a9c6eba507dc87",
- "reference": "791b1a67c25af50e230f841ee7a9c6eba507dc87",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-json": "*",
- "ext-pcre": "*",
- "ext-reflection": "*",
- "ext-spl": "*",
- "php": ">=5.3.3",
- "phpspec/prophecy": "^1.3.1",
- "phpunit/php-code-coverage": "~2.1",
- "phpunit/php-file-iterator": "~1.4",
- "phpunit/php-text-template": "~1.2",
- "phpunit/php-timer": "^1.0.6",
- "phpunit/phpunit-mock-objects": "~2.3",
- "sebastian/comparator": "~1.2.2",
- "sebastian/diff": "~1.2",
- "sebastian/environment": "~1.3",
- "sebastian/exporter": "~1.2",
- "sebastian/global-state": "~1.0",
- "sebastian/version": "~1.0",
- "symfony/yaml": "~2.1|~3.0"
- },
- "suggest": {
- "phpunit/php-invoker": "~1.1"
- },
- "bin": [
- "phpunit"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "4.8.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "The PHP Unit Testing framework.",
- "homepage": "https://phpunit.de/",
- "keywords": [
- "phpunit",
- "testing",
- "xunit"
- ],
- "time": "2017-02-06T05:18:07+00:00"
- },
- {
- "name": "phpunit/phpunit-mock-objects",
- "version": "2.3.8",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
- "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983",
- "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983",
- "shasum": ""
- },
- "require": {
- "doctrine/instantiator": "^1.0.2",
- "php": ">=5.3.3",
- "phpunit/php-text-template": "~1.2",
- "sebastian/exporter": "~1.2"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.4"
- },
- "suggest": {
- "ext-soap": "*"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.3.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sb@sebastian-bergmann.de",
- "role": "lead"
- }
- ],
- "description": "Mock Object library for PHPUnit",
- "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
- "keywords": [
- "mock",
- "xunit"
- ],
- "time": "2015-10-02T06:51:40+00:00"
- },
- {
- "name": "sebastian/comparator",
- "version": "1.2.4",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
- "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3",
- "sebastian/diff": "~1.2",
- "sebastian/exporter": "~1.2 || ~2.0"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.4"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.2.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Volker Dusch",
- "email": "github@wallbash.com"
- },
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@2bepublished.at"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Provides the functionality to compare PHP values for equality",
- "homepage": "http://www.github.com/sebastianbergmann/comparator",
- "keywords": [
- "comparator",
- "compare",
- "equality"
- ],
- "time": "2017-01-29T09:50:25+00:00"
- },
- {
- "name": "sebastian/diff",
- "version": "1.4.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4",
- "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4",
- "shasum": ""
- },
- "require": {
- "php": "^5.3.3 || ^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Kore Nordmann",
- "email": "mail@kore-nordmann.de"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Diff implementation",
- "homepage": "https://github.com/sebastianbergmann/diff",
- "keywords": [
- "diff"
- ],
- "time": "2017-05-22T07:24:03+00:00"
- },
- {
- "name": "sebastian/environment",
- "version": "1.3.8",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea",
- "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea",
- "shasum": ""
- },
- "require": {
- "php": "^5.3.3 || ^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8 || ^5.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.3.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Provides functionality to handle HHVM/PHP environments",
- "homepage": "http://www.github.com/sebastianbergmann/environment",
- "keywords": [
- "Xdebug",
- "environment",
- "hhvm"
- ],
- "time": "2016-08-18T05:49:44+00:00"
- },
- {
- "name": "sebastian/exporter",
- "version": "1.2.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4",
- "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3",
- "sebastian/recursion-context": "~1.0"
- },
- "require-dev": {
- "ext-mbstring": "*",
- "phpunit/phpunit": "~4.4"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.3.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Volker Dusch",
- "email": "github@wallbash.com"
- },
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@2bepublished.at"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Adam Harvey",
- "email": "aharvey@php.net"
- }
- ],
- "description": "Provides the functionality to export PHP variables for visualization",
- "homepage": "http://www.github.com/sebastianbergmann/exporter",
- "keywords": [
- "export",
- "exporter"
- ],
- "time": "2016-06-17T09:04:28+00:00"
- },
- {
- "name": "sebastian/global-state",
- "version": "1.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
- "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.2"
- },
- "suggest": {
- "ext-uopz": "*"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Snapshotting of global state",
- "homepage": "http://www.github.com/sebastianbergmann/global-state",
- "keywords": [
- "global state"
- ],
- "time": "2015-10-12T03:26:01+00:00"
- },
- {
- "name": "sebastian/recursion-context",
- "version": "1.0.5",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7",
- "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.4"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Adam Harvey",
- "email": "aharvey@php.net"
- }
- ],
- "description": "Provides functionality to recursively process PHP variables",
- "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
- "time": "2016-10-03T07:41:43+00:00"
- },
- {
- "name": "sebastian/version",
- "version": "1.0.6",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/version.git",
- "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
- "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
- "shasum": ""
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Library that helps with managing the version number of Git-hosted PHP projects",
- "homepage": "https://github.com/sebastianbergmann/version",
- "time": "2015-06-21T13:59:46+00:00"
- },
- {
- "name": "symfony/yaml",
- "version": "v3.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/yaml.git",
- "reference": "885db865f6b2b918404a1fae28f9ac640f71f994"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/885db865f6b2b918404a1fae28f9ac640f71f994",
- "reference": "885db865f6b2b918404a1fae28f9ac640f71f994",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5.9"
- },
- "require-dev": {
- "symfony/console": "~2.8|~3.0"
- },
- "suggest": {
- "symfony/console": "For validating YAML files using the lint command"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.3-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Yaml\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony Yaml Component",
- "homepage": "https://symfony.com",
- "time": "2017-05-28T10:56:20+00:00"
- },
- {
- "name": "webmozart/assert",
- "version": "1.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/webmozart/assert.git",
- "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f",
- "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f",
- "shasum": ""
- },
- "require": {
- "php": "^5.3.3 || ^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.6",
- "sebastian/version": "^1.0.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.3-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Webmozart\\Assert\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
- }
- ],
- "description": "Assertions to validate method input/output with nice error messages.",
- "keywords": [
- "assert",
- "check",
- "validate"
- ],
- "time": "2016-11-23T20:04:58+00:00"
- }
- ],
- "aliases": [],
- "minimum-stability": "stable",
- "stability-flags": [],
- "prefer-stable": false,
- "prefer-lowest": false,
- "platform": {
- "php": ">=5.4"
- },
- "platform-dev": []
-}
diff --git a/logging/quickstart/phpunit.xml.dist b/logging/quickstart/phpunit.xml.dist
deleted file mode 100644
index 95219ee94d..0000000000
--- a/logging/quickstart/phpunit.xml.dist
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
- test
-
-
-
-
-
-
-
- quickstart.php
-
-
-
diff --git a/logging/api/src/functions/log_entry_functions.php b/logging/src/log_entry_functions.php
similarity index 76%
rename from logging/api/src/functions/log_entry_functions.php
rename to logging/src/log_entry_functions.php
index d783eb9853..640ba5df33 100644
--- a/logging/api/src/functions/log_entry_functions.php
+++ b/logging/src/log_entry_functions.php
@@ -43,6 +43,7 @@ function write_log($projectId, $loggerName, $message)
]);
$entry = $logger->entry($message);
$logger->write($entry);
+ printf("Wrote a log to a logger '%s'." . PHP_EOL, $loggerName);
}
// [END write_log]
@@ -66,7 +67,23 @@ function list_entries($projectId, $loggerName)
$options = [
'filter' => $filter,
];
- return $logging->entries($options);
+ $entries = $logging->entries($options);
+
+ // Print the entries
+ foreach ($entries as $entry) {
+ /* @var $entry \Google\Cloud\Logging\Entry */
+ $entryInfo = $entry->info();
+ if (isset($entryInfo['textPayload'])) {
+ $entryText = $entryInfo['textPayload'];
+ } else {
+ $entryPayload = [];
+ foreach ($entryInfo['jsonPayload'] as $key => $value) {
+ $entryPayload[] = "$key=$value";
+ }
+ $entryText = '{' . implode(', ', $entryPayload) . '}';
+ }
+ printf("%s : %s" . PHP_EOL, $entryInfo['timestamp'], $entryText);
+ }
}
// [END list_entries]
@@ -81,5 +98,6 @@ function delete_logger($projectId, $loggerName)
$logging = new LoggingClient(['projectId' => $projectId]);
$logger = $logging->logger($loggerName);
$logger->delete();
+ printf("Deleted a logger '%s'." . PHP_EOL, $loggerName);
}
// [END delete_logger]
diff --git a/logging/api/src/functions/sink_functions.php b/logging/src/sink_functions.php
similarity index 84%
rename from logging/api/src/functions/sink_functions.php
rename to logging/src/sink_functions.php
index 210551b60d..2a9da6fc2f 100644
--- a/logging/api/src/functions/sink_functions.php
+++ b/logging/src/sink_functions.php
@@ -39,6 +39,7 @@ function create_sink($projectId, $sinkName, $destination, $filterString)
$destination,
['filter' => $filterString]
);
+ printf("Created a sink '%s'." . PHP_EOL, $sinkName);
}
// [END create_sink]
@@ -52,6 +53,7 @@ function delete_sink($projectId, $sinkName)
{
$logging = new LoggingClient(['projectId' => $projectId]);
$logging->sink($sinkName)->delete();
+ printf("Deleted a sink '%s'." . PHP_EOL, $sinkName);
}
// [END delete_sink]
@@ -65,7 +67,14 @@ function delete_sink($projectId, $sinkName)
function list_sinks($projectId)
{
$logging = new LoggingClient(['projectId' => $projectId]);
- return $logging->sinks();
+ $sinks = $logging->sinks();
+ foreach ($sinks as $sink) {
+ /* @var $sink \Google\Cloud\Logging\Sink */
+ foreach ($sink->info() as $key => $value) {
+ print "$key:$value\n";
+ }
+ print PHP_EOL;
+ }
}
// [END list_sinks]
@@ -83,5 +92,6 @@ function update_sink($projectId, $sinkName, $filterString)
$logging = new LoggingClient(['projectId' => $projectId]);
$sink = $logging->sink($sinkName);
$sink->update(['filter' => $filterString]);
+ printf("Updated a sink '%s'." . PHP_EOL, $sinkName);
}
// [END update_sink]
diff --git a/logging/src/write_with_monolog_logger.php b/logging/src/write_with_monolog_logger.php
new file mode 100644
index 0000000000..fe0c7afe2f
--- /dev/null
+++ b/logging/src/write_with_monolog_logger.php
@@ -0,0 +1,51 @@
+ $projectId
+ ]);
+ $logger = $logging->psrLogger($loggerName);
+
+ // Create a Monolog logger
+ // NOTE: You can use an existing monolog client, i.e. when using Laravel or Symfony.
+ $monolog = new MonologLogger();
+
+ // Push the Psr logger onto the logger using a Monolog PsrHandler.
+ $handler = new PsrHandler($logger);
+ $monolog->pushHandler($handler);
+
+ // Log the message
+ $monolog->log($level, $message);
+ printf("Wrote to monolog logger '%s' at level '%s'." . PHP_EOL, $loggerName, $level);
+}
+// [END write_with_monolog_logger]
diff --git a/logging/src/write_with_psr_logger.php b/logging/src/write_with_psr_logger.php
new file mode 100644
index 0000000000..8f5daf23ee
--- /dev/null
+++ b/logging/src/write_with_psr_logger.php
@@ -0,0 +1,37 @@
+ $projectId]);
+ $logger = $logging->psrLogger($loggerName);
+ $logger->log($level, $message);
+ printf("Wrote to PSR logger '%s' at level '%s'." . PHP_EOL, $loggerName, $level);
+}
+// [END write_with_psr_logger]
diff --git a/logging/test/loggingTest.php b/logging/test/loggingTest.php
new file mode 100644
index 0000000000..e93f3d1d17
--- /dev/null
+++ b/logging/test/loggingTest.php
@@ -0,0 +1,233 @@
+ 0;
+ self::$loggerName = 'my_test_logger';
+ self::$sinkName = sprintf("sink-%s", uniqid());
+ }
+
+ public function setUp()
+ {
+ if (!self::$hasCredentials) {
+ $this->markTestSkipped('No application credentials were found.');
+ }
+
+ if (!$this->projectId = getenv('GOOGLE_PROJECT_ID')) {
+ $this->markTestSkipped('No project ID');
+ }
+ }
+
+ public function testCreateSink()
+ {
+ if (!$bucket = getenv('GOOGLE_BUCKET_NAME')) {
+ $this->markTestSkipped('No GOOGLE_BUCKET_NAME envvar');
+ }
+
+ $output = $this->runCommand('create-sink', [
+ '--logger' => self::$loggerName,
+ '--bucket' => $bucket,
+ '--sink' => self::$sinkName,
+ ]);
+ $this->assertEquals(
+ sprintf("Created a sink '%s'.\n", self::$sinkName),
+ $output
+ );
+ }
+
+ /**
+ * @depends testCreateSink
+ */
+ public function testListSinks()
+ {
+ $output = $this->runCommand('list-sinks');
+ $this->assertContains('name:' . self::$sinkName, $output);
+ }
+
+ /**
+ * @depends testCreateSink
+ */
+ public function testUpdateSink()
+ {
+ $output = $this->runCommand('update-sink', [
+ '--sink' => self::$sinkName,
+ '--logger' => 'updated-logger',
+ ]);
+ $this->assertEquals(
+ sprintf("Updated a sink '%s'.\n", self::$sinkName),
+ $output
+ );
+ // Check the updated filter value
+ $logging = new LoggingClient(['projectId' => $this->projectId]);
+ $sink = $logging->sink(self::$sinkName);
+ $sink->reload();
+ $this->assertRegExp(
+ sprintf(
+ '|projects/%s/logs/%s|',
+ $this->projectId,
+ 'updated-logger'
+ ),
+ $sink->info['filter']
+ );
+ }
+
+ /**
+ * @depends testCreateSink
+ */
+ public function testUpdateSinkWithFilter()
+ {
+ $output = $this->runCommand('update-sink', [
+ '--sink' => self::$sinkName,
+ '--filter' => 'severity >= INFO',
+ ]);
+ $this->assertEquals(
+ sprintf("Updated a sink '%s'.\n", self::$sinkName),
+ $output
+ );
+ // Check the updated filter value
+ $logging = new LoggingClient(['projectId' => $this->projectId]);
+ $sink = $logging->sink(self::$sinkName);
+ $sink->reload();
+ $this->assertRegExp('/severity >= INFO/', $sink->info['filter']);
+ }
+
+ /**
+ * @depends testCreateSink
+ */
+ public function testDeleteSink()
+ {
+ $output = $this->runCommand('delete-sink', [
+ // '--logger' => self::$loggerName,
+ '--sink' => self::$sinkName,
+ ]);
+ $this->assertEquals(
+ sprintf("Deleted a sink '%s'.\n", self::$sinkName),
+ $output
+ );
+ }
+
+ public function testWrite()
+ {
+ $message = 'Test Message';
+ $output = $this->runCommand('write', [
+ '--logger' => self::$loggerName,
+ 'message' => $message
+ ]);
+ $this->assertEquals(
+ sprintf("Wrote a log to a logger '%s'.\n", self::$loggerName),
+ $output
+ );
+ }
+
+ /**
+ * @depends testWrite
+ */
+ public function testListEntries()
+ {
+ $phpunit = $this;
+ $loggerName = self::$loggerName;
+ $this->runEventuallyConsistentTest(function () use ($phpunit, $loggerName) {
+ $output = $phpunit->runCommand('list-entries', [
+ '--logger' => $loggerName,
+ ]);
+ $this->assertContains(': Test Message', $output);
+ }, 10);
+ }
+
+ /**
+ * @depends testWrite
+ */
+ public function testDeleteLogger()
+ {
+ $output = $this->runCommand('delete-logger', [
+ '--logger' => self::$loggerName,
+ ]);
+ $this->assertEquals(
+ sprintf("Deleted a logger '%s'.\n", self::$loggerName),
+ $output
+ );
+ }
+
+ public function testWritePsr()
+ {
+ $message = 'Test Message';
+ $output = $this->runCommand('write-psr', [
+ '--logger' => self::$loggerName,
+ '--level' => 'emergency',
+ 'message' => $message,
+ ]);
+ $this->assertEquals(
+ sprintf("Wrote to PSR logger '%s' at level 'emergency'.\n", self::$loggerName),
+ $output
+ );
+ }
+
+ public function testWriteMonolog()
+ {
+ $message = 'Test Message';
+ $output = $this->runCommand('write-monolog', [
+ '--logger' => self::$loggerName,
+ '--level' => 'emergency',
+ 'message' => $message,
+ ]);
+ $this->assertEquals(
+ sprintf("Wrote to Monolog logger '%s' at level 'emergency'.\n", self::$loggerName),
+ $output
+ );
+ }
+
+ public function runCommand($commandName, $additionalArgs = [])
+ {
+ $application = require __DIR__ . '/../logging.php';
+ $command = $application->get($commandName);
+ $commandTester = new CommandTester($command);
+
+ ob_start();
+ $commandTester->execute([
+ 'project' => $this->projectId,
+ ] + $additionalArgs, [
+ 'interactive' => false
+ ]);
+
+ return ob_get_clean();
+ }
+}
diff --git a/logging/quickstart/test/quickstartTest.php b/logging/test/quickstartTest.php
similarity index 96%
rename from logging/quickstart/test/quickstartTest.php
rename to logging/test/quickstartTest.php
index 44f577a81c..2a77e57f34 100644
--- a/logging/quickstart/test/quickstartTest.php
+++ b/logging/test/quickstartTest.php
@@ -40,5 +40,6 @@ public function testQuickstart()
$this->assertEquals('Hello, world!', $info['textPayload']);
$this->assertContains('my-log', $info['logName']);
$this->assertEquals('global', $info['resource']['type']);
+ $this->expectOutputString('Logged Hello, world!');
}
}