profile
viewpoint

marc-mabe/php-enum 422

Simple and fast implementation of enumerations with native PHP

prolic/awesomeness 18

Experimental new EventStore Implementation.

amphp/sql 11

Common interfaces for Amp based SQL drivers.

FriendsOfApi/phraseapp 4

A HTTP client for PhraseApp.com

prolic/Concurrent-PHP-Utils 3

port of java.util.concurrent to PHP based on pthreads-extension

amphp/php-cs-fixer-config 2

Common code style configuration for all @amphp projects.

php-translation/phraseapp-adapter 1

Adapter for Phraseapp

prolic/ClassComparer 1

useful to find difference in same classes in different directories

prolic/DesignPatternsPHP 1

sample code for several design patterns in PHP

issue commentprooph/event-store

Detaching listener handlers from event store

From the top of my head (on the phone right now): use the return value of the attach call.

On Thu, Aug 6, 2020, 15:30 webDEVILopers notifications@github.com wrote:

Since prooph service bus is deprecated we are using the symfony messenger. In order to use it we copied the bridge from the original bridge but inject the symfony bus:

https://github.com/prooph/event-store-bus-bridge/blob/master/src/EventPublisher.php

The publisher attaches some listeners for append_to:

public function attachToEventStore(ActionEventEmitterEventStore $eventStore): void
{
    $this->listenerHandlers[] = $eventStore->attach(
        ActionEventEmitterEventStore::EVENT_APPEND_TO,
        function (ActionEvent $event) use ($eventStore): void {
            $recordedEvents = $event->getParam('streamEvents', new \ArrayIterator());

            if (! $this->inTransaction($eventStore)) {
                if ($event->getParam('streamNotFound', false)
                    || $event->getParam('concurrencyException', false)
                ) {
                    return;
                }

                foreach ($recordedEvents as $recordedEvent) {
                    $this->eventBus->dispatch($recordedEvent);
                }
            } else {
                $this->cachedEventStreams[] = $recordedEvents;
            }
        }
    );

We have a service that is writing directly to the event store and we do not want to publish these events. We can detach the complete plugin from the event store via:

$this->publisher->detachFromEventStore($this->eventStore);

But how could this be achieved using the detach method on the event store itself?

We tried this:

    $publisher = new DefaultListenerHandler(function(ActionEvent $event) {
        dump($event);exit;
    });
    $this->eventStore->detach($publisher);

But we are not sure how to design the closure. In our example nothing happens.

Any help would be appreciated.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/prooph/event-store/issues/410, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADAJPDCGBSDOC4THANTH5LR7MAFRANCNFSM4PW46AEA .

webdevilopers

comment created time in a day

issue closedprooph/event-store-symfony-bundle

Options for projection in command

What's the recommended way to pass options to a projection? I'm looking to change the projector options.

I'm currently using the event-store:projection:run command but as far as I can tell, there's no way to modify the options without creating a new command with a lot of the code that's in AbstractProjectionCommand.

A few ideas:

  1. Add an options property to AbstractProjectionCommand and then add my own command that uses the abstract overriding the options property. But this seems like near-copying code for no good reason (though less than copying the entire AbstractProjectionCommand).

  2. Add options/arguments to the command to support all/most values that projectors support. The only issue I see here is that they'll get long and ugly unless we come up with shorten versions.

  3. Add config options. The problem I see here is that you may want different options depending on the situation and we'd need to load them "everywhere" (or maybe just in the command). Though could be worth adding this along with 1 or 2.

I'm okay to attempt a first version of the change, but don't want assume which direction is preferred.

closed time in a day

darrylhein

issue commentwebdevilopers/php-ddd

How to merge event-sourced aggregate roots (A+ES) with Prooph PDO event stream

OK my bad, looks good to me after quick review

On Mon, Aug 3, 2020, 15:33 webDEVILopers notifications@github.com wrote:

Actually MergedEmploymentContract is NOT an aggregate root. It's just a factory using the typical recordThat method of prooph which indeed is include in the AggregateRoot class. But that one is not extended here. The factory is just not named "Factory" but after the result aggregate to expect. There is no "natural" aggregate that comes from the merging. It's just written to the regular Employment Contract stream.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/webdevilopers/php-ddd/issues/45#issuecomment-668203099, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADAJPC54ATYNWF67O4NCBTR64GIPANCNFSM4PP4GXSQ .

webdevilopers

comment created time in 4 days

issue commentwebdevilopers/php-ddd

How to merge event-sourced aggregate roots (A+ES) with Prooph PDO event stream

I would prefer not to inject the repository into the aggregate root. Do it from the outside instead.

webdevilopers

comment created time in 4 days

pull request commentprooph/event-store-symfony-bundle

projection options

awesome @unixslayer , thank you

unixslayer

comment created time in 4 days

push eventprooph/event-store-symfony-bundle

unixslayer

commit sha f70233e64236f6a8c6d08403bf4ea8760328e383

projection options - I was not able to pass projection options when defining projections so it couldn't be used when running projection with console command - projection options can be defined either in central way or as tagged service - supplementing the documentation with projection management

view details

Sascha-Oliver Prolic

commit sha 3d7a30ef93041c542077f2d51853c9cab2ba7e1d

Merge pull request #69 from unixslayer/projection_options projection options

view details

push time in 4 days

PR merged prooph/event-store-symfony-bundle

projection options

@codeliner @prolic

  • I was not able to pass projection options when defining projections so it couldn't be used when running projection with console command
+454 -11

3 comments

20 changed files

unixslayer

pr closed time in 4 days

push eventprooph/event-store

Sascha-Oliver Prolic

commit sha d5a10d41050e61d742bb09e704b25a8d832eb3fd

Update EventStoreConnection.php

view details

push time in 9 days

pull request commentprooph/event-store-benchmarks

Update ArangoDB implementation and use projection options

@sandrokeil see https://github.com/prooph/event-store-benchmarks/blob/0be21e348ec57e6aed920b5acae406661d7a8dbd/bench.sh#L8

I have to change this line to while [ ${1} ]; do, otherwise the script won't run.

sandrokeil

comment created time in 9 days

pull request commentprooph/event-store-symfony-bundle

projection options

can you add something to the docs on how to use it?

unixslayer

comment created time in 9 days

delete branch prooph/event-store

delete branch : dependabot/composer/ramsey/uuid-tw-3.9.3or-tw-4.0.0

delete time in 9 days

PR closed prooph/event-store

Update ramsey/uuid requirement from ^3.9.3 to ^3.9.3 || ^4.0.0 dependencies

Updates the requirements on ramsey/uuid to permit the latest version. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/ramsey/uuid/releases">ramsey/uuid's releases</a>.</em></p> <blockquote> <h2>4.1.0</h2> <h3>Changed</h3> <ul> <li>Improve performance of <code>Uuid::fromString()</code>, <code>Uuid::fromBytes()</code>, <code>UuidInterface#toString()</code>, and <code>UuidInterface#getBytes()</code>. See PR <a href="https://github-redirect.dependabot.com/ramsey/uuid/pull/324">#324</a> for more information.</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/ramsey/uuid/blob/master/CHANGELOG.md">ramsey/uuid's changelog</a>.</em></p> <blockquote> <h2>[4.1.0] - 2020-07-28</h2> <h3>Changed</h3> <ul> <li>Improve performance of <code>Uuid::fromString()</code>, <code>Uuid::fromBytes()</code>, <code>UuidInterface#toString()</code>, and <code>UuidInterface#getBytes()</code>. See PR <a href="https://github-redirect.dependabot.com/ramsey/uuid/pull/324">#324</a> for more information.</li> </ul> <h2>[4.0.1] - 2020-03-29</h2> <h3>Fixed</h3> <ul> <li>Fix collection deserialization errors due to upstream <code>allowed_classes</code> being set to <code>false</code>. For details, see <a href="https://github-redirect.dependabot.com/ramsey/uuid/issues/303">ramsey/uuid#303</a> and <a href="https://github-redirect.dependabot.com/ramsey/collection/issues/47">ramsey/collection#47</a>.</li> </ul> <h2>[4.0.0] - 2020-03-22</h2> <h3>Added</h3> <ul> <li>Add support for version 6 UUIDs, as defined by <a href="http://gh.peabody.io/uuidv6/">http://gh.peabody.io/uuidv6/</a>, including the static method <code>Uuid::uuid6()</code>, which returns a <code>Nonstandard\UuidV6</code> instance.</li> <li>Add ability to generate version 2 (DCE Security) UUIDs, including the static method <code>Uuid::uuid2()</code>, which returns an <code>Rfc4122\UuidV2</code> instance.</li> <li>Add classes to represent each version of RFC 4122 UUID. When generating new UUIDs or creating UUIDs from existing strings, bytes, or integers, if the UUID is an RFC 4122 variant, one of these instances will be returned: <ul> <li><code>Rfc4122\UuidV1</code></li> <li><code>Rfc4122\UuidV2</code></li> <li><code>Rfc4122\UuidV3</code></li> <li><code>Rfc4122\UuidV4</code></li> <li><code>Rfc4122\UuidV5</code></li> <li><code>Rfc4122\NilUuid</code></li> </ul> </li> <li>Add classes to represent version 6 UUIDs, GUIDs, and nonstandard (non-RFC 4122 variant) UUIDs: <ul> <li><code>Nonstandard\UuidV6</code></li> <li><code>Guid\Guid</code></li> <li><code>Nonstandard\Uuid</code></li> </ul> </li> <li>Add <code>Uuid::fromDateTime()</code> to create version 1 UUIDs from instances of <code>\DateTimeInterface</code>.</li> <li>The <code>\DateTimeInterface</code> instance returned by <code>UuidInterface::getDateTime()</code> (and now <code>Rfc4122\UuidV1::getDateTime()</code>) now includes microseconds, as specified by the version 1 UUID.</li> <li>Add <code>Validator\ValidatorInterface</code> and <code>Validator\GenericValidator</code> to allow flexibility in validating UUIDs/GUIDs. <ul> <li>The default validator continues to validate UUID strings using the same relaxed validation pattern found in the 3.x series of ramsey/uuid.</li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ramsey/uuid/commit/988dbefc7878d0a35f12afb4df1f7dd0bd153c43"><code>988dbef</code></a> Update CHANGELOG for 4.1.0 release</li> <li><a href="https://github.com/ramsey/uuid/commit/9ebb0eb9ed63faac72fb4897442ad0fc7d0f5e9b"><code>9ebb0eb</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/ramsey/uuid/issues/324">#324</a> from Ocramius/feature/happy-path-performance-improvem...</li> <li><a href="https://github.com/ramsey/uuid/commit/0c2b4074d2a3f0c9f0051e326305a172eba94627"><code>0c2b407</code></a> Minor performance optimization: <code>LazyUuidFromString#unwrap()</code> now uses an int...</li> <li><a href="https://github.com/ramsey/uuid/commit/fa14d042312e3dc247564d471e572bc0c572a819"><code>fa14d04</code></a> Added benchmark about extracting UUID field details</li> <li><a href="https://github.com/ramsey/uuid/commit/6339cd9fbc68e3ca24fa6254476b515f73e8648f"><code>6339cd9</code></a> Added UUID serialization benchmark</li> <li><a href="https://github.com/ramsey/uuid/commit/a621ca9e819f3db85416c91353da083f8b60aeb8"><code>a621ca9</code></a> <code>Uuid::uuid3()</code> uses impure <code>Uuid::getFactory()</code> API - suppressing it from pu...</li> <li><a href="https://github.com/ramsey/uuid/commit/b805572537800d84865d49f5e9e5db04e22ff65d"><code>b805572</code></a> Ensure that <code>Uuid::uuidX()</code> generators produce instances equivalent to `Uuid:...</li> <li><a href="https://github.com/ramsey/uuid/commit/2421b79841501a87311513821de16ca31275fcd4"><code>2421b79</code></a> Added benchmark for UUID generation logic</li> <li><a href="https://github.com/ramsey/uuid/commit/910e3e459c7d301f10f2ce212bc598292e51812f"><code>910e3e4</code></a> Adjusted comment wording: s/string/strict (typo)</li> <li><a href="https://github.com/ramsey/uuid/commit/1f0cd71d93d435afe1d461a388ba387e85fceb48"><code>1f0cd71</code></a> Applied fixes and suppressions (sadly) to match psalm/phpstan code quality gu...</li> <li>Additional commits viewable in <a href="https://github.com/ramsey/uuid/compare/3.9.3...4.1.0">compare view</a></li> </ul> </details> <br />

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


<details> <summary>Dependabot commands and options</summary> <br />

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
  • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot dashboard:

  • Update frequency (including time of day and day of week)
  • Pull request limits (per update run and/or open at any time)
  • Out-of-range updates (receive only lockfile updates, if desired)
  • Security updates (receive only security updates, if desired)

</details>

+1 -1

0 comment

1 changed file

dependabot-preview[bot]

pr closed time in 9 days

PR opened amphp/postgres

fix connection string in readme example
+1 -1

0 comment

1 changed file

pr created time in 10 days

push eventprolic/postgres

Sascha-Oliver Prolic

commit sha 0841d46a13757f65dc8706acd3393ed41ada343f

fix connection string in readme example

view details

push time in 10 days

issue commentamphp/log

\STDOUT not writeable - why?

I'll check it out

On Tue, Jul 28, 2020, 12:28 Niklas Keller notifications@github.com wrote:

@enumag https://github.com/enumag @prolic https://github.com/prolic Any news here? We've fixed amphp/byte-stream#58 https://github.com/amphp/byte-stream/issues/58 since this issue has been opened, is that related?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/amphp/log/issues/1#issuecomment-665141078, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADAJPAEM2EM6O4NMVXNRV3R534BTANCNFSM4GE6B7JQ .

prolic

comment created time in 10 days

issue closedklazuka/intellij-elm

Generating json encoders / decoders not working

I tried PhpStorm, PyCharm Community Edition and IDEA Community Edition. I cannot get json encoders / decoders generated. There is no generate option available.

closed time in 10 days

prolic

issue commentklazuka/intellij-elm

Generating json encoders / decoders not working

@klazuka Thanks. Seems like it's only a problem if the type alias is defined in another file.

prolic

comment created time in 10 days

issue openedklazuka/intellij-elm

Generating json encoders / decoders not working

I tried PhpStorm, PyCharm Community Edition and IDEA Community Edition. I cannot get json encoders / decoders generated. There is no generate option available.

created time in 11 days

issue commentwebdevilopers/php-ddd

Applying domain events to aggregate roots when deserializing payload of old events break current value object constraint changes

You can use a special constructor for this that is marked @internal

webdevilopers

comment created time in 15 days

pull request commentmarc-mabe/php-enum

Fix typo in the readme

@marc-mabe cannot merge because of failed build

jdreesen

comment created time in 18 days

release prooph/event-store

v7.5.8

released time in 18 days

created tagprooph/event-store

tagv7.5.8

PHP 7.4 EventStore Implementation

created time in 18 days

push eventprooph/event-store

prolic

commit sha c603c6e7324d1c09570aeef16df1ac43ab5694c8

update changelog

view details

push time in 18 days

delete branch prooph/event-store

delete branch : feature/timsort-merge-stream-iterator

delete time in 18 days

push eventprooph/event-store

Sandro Keil

commit sha 56f1b9c20954d4a07357be22a23bff126922cd7f

Improve MergeStreamIterator performance by using TimSort (#408) * Improve MergeStreamIterator performance by using TimSort * Bump phpunit/phpunit to 7.5.20 and phpspec/prophecy to 1.10.3

view details

push time in 18 days

PR merged prooph/event-store

Improve MergeStreamIterator performance by using TimSort enhancement

I figured out really slow performance with the comparison function in the MergeStreamIterator class. Our event store benchmarks needs dozens of minutes to complete the benchmark.

I've added a unit test and it shows that the TimSort is faster (857 ms vs. 1.44 seconds) than the current implementation. You can check it if you replace the prioritizeIterators method with the old implementation (adapted to the new structure).

private function prioritizeIterators(): void
{
    $compareValue = function (\Iterator $iterator): \DateTimeImmutable {
        /** @var Message $message */
        $message = $iterator->current();

        return $message->createdAt();
    };

    $compareFunction = function ($a, $b) use ($compareValue) {
        // valid iterators should be prioritized over invalid ones
        if (! $a[0]->valid() || ! $b[0]->valid()) {
            return $b[0]->valid() <=> $a[0]->valid();
        }

        return $compareValue($a[0]) <=> $compareValue($b[0]);
    };

    if ($this->numberOfIterators > 1) {
        \usort($this->iterators, $compareFunction);
    }
}

TimSort implementation was taken from GeeksforGeeks. A sort algorithm comparison can be found here.

/cc @prolic @basz @codeliner

Benchmark files: postgres12_timsort.log postgres12_usort.log postgres_without_merge_stream_iterator.log arangodb_3_6.log

+261 -37

4 comments

4 changed files

sandrokeil

pr closed time in 18 days

issue commentryannhg/elm-spa

Incompatible dependencies on latest

Thx man

On Tue, Jul 14, 2020, 21:10 Ryan Haskell-Glatz notifications@github.com wrote:

Closed #45 https://github.com/ryannhg/elm-spa/issues/45.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ryannhg/elm-spa/issues/45#event-3546464472, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADAJPH5KADIDZLWZBYORQLR3T6Z3ANCNFSM4OT43LFA .

prolic

comment created time in 24 days

fork prolic/elm-auth0

Auth0 for elm

fork in 25 days

issue commentprooph/event-store-client

Connection process cannot be "waited"

Again, this is not a bug. The connection doesn't need to be there once connectAsync is waited for. See also the original .NET client which this is a port from: https://github.com/EventStore/EventStore/blob/master/src/EventStore.ClientAPI/Internal/EventStoreConnectionLogicHandler.cs#L136-L137

If you want to wait until the connection is ready, you can do that by resolving a custom deferred using the onConnected handler. Something like this should work:

$deferred = new Deferred();
$connection->onConnected(function () use ($deferred): void {
    $deferred->resolve(null);
});
wait($deferred->promise());
Nek-

comment created time in a month

issue commentprooph/event-store-client

Connection process cannot be "waited"

Yes, my point is that the connection promise should not be resolve at this state because it's not connected yet.

This is a wrong assumption. The promise will be resolved, once the command to establish a connection has been enqueued. Again, if you are working in a standard-php application, which is sync and blocking (a.k.a. you use wait), stick to the HTTP client implementation (https://github.com/prooph/event-store-http-client/).

What you are describing here is the actual desired behavior.

Nek-

comment created time in a month

issue closedprooph/event-store-client

Connection process cannot be "waited"

Expected behavior

wait($connection->connectAsync());

TCP Connection ready after this. Any further instruction yield to be waited as well.

Actual behavior

The connection is not even created, at this state either nothing has been done or discovering endpoints, which is part of the connection.

This means that any statement that comes after (and is yielded!) will not be finished and wait because the library has an internal "retry" mechanism when the connection is not ready.

I think this is a broken usage of Amphp that must be fixed. WDYT?

I open this issue after posting on stackoverflow and some hours on trying to debug the thing.

closed time in a month

Nek-

issue commentprooph/event-store-client

Connection process cannot be "waited"

This is how a connection is established:

https://github.com/prooph/event-store-client/blob/master/src/Internal/EventStoreConnectionLogicHandler.php#L247-L251

As you can see here, the command to establish the connection is enqueued and the promised is resolved.

See https://github.com/prooph/event-store-client/blob/master/src/Internal/EventStoreConnectionLogicHandler.php#L312-L340

The actual establishment of the connection is deferred on the loop and handled on the next tick.

This means if you call wait($connection->connectAsync()); your connection might not yet be ready. In an async application that's not a problem at all, you can already write to or subscribe from streams, those actions will be performed asynchronously as soon as the connection is established.

You can look at the unit tests and examples folders for a lot of working examples.

Nek-

comment created time in a month

issue commentprooph/event-store-client

Connection process cannot be "waited"

Even if you would make it work somehow, imagine this:

wait($connection->connectAsync());
sleep(10);

What happened? You just destroyed your connection. Once the loop is stopped (this is what wait does) the heartbeats are not longer handled and all incoming messages from the event-store server are not handled.

Nek-

comment created time in a month

issue commentprooph/event-store-client

Connection process cannot be "waited"

wait is helper wrapper around Loop::run that stops the loop as soon as the passed promise is resolved. What you are trying to do is a bad idea in general. When being in a sync app, why don't you use the http-client?

Nek-

comment created time in a month

startedryannhg/elm-spa

started time in a month

issue openedryannhg/elm-spa

Incompatible dependencies on latest

I cannot get a new project initialized (although cloning https://github.com/ryannhg/elm-spa-dev I can run it locally) using latest.

Using sudo npm install --global elm-spa@4.1.0 it works though.

Steps to reproduce:

$ sudo npm install --global elm-spa@latest
$ elm-spa -v                                                                                                                               :(
4.1.1
$ elm-spa init frontend
$ cd frontend
$ npm start

Outputs this:

-- INCOMPATIBLE DEPENDENCIES ------------------------------------------ elm.json

The dependencies in your elm.json are not compatible.

Did you change them by hand? Try to change it back! It is much more reliable to
add dependencies with elm install or the dependency management tool in
elm reactor.

Please ask for help on the community forums if you try those paths and are still
having problems!

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! elm-spa-app@1.0.0 build:elm: `elm make src/Main.elm --optimize --output public/dist/elm.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the elm-spa-app@1.0.0 build:elm script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/sasa/.npm/_logs/2020-07-07T23_50_23_522Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! elm-spa-app@1.0.0 build: `npm run build:elm-spa && npm run build:elm`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the elm-spa-app@1.0.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/sasa/.npm/_logs/2020-07-07T23_50_23_546Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! elm-spa-app@1.0.0 start: `npm install && npm run build && npm run dev`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the elm-spa-app@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/sasa/.npm/_logs/2020-07-07T23_50_23_557Z-debug.log

created time in a month

push eventprolic/fpp

prolic

commit sha 9cd5784edc65380dd35024712e55e681b3c863cd

no lcfirst on enum methods

view details

push time in a month

startedrtfeldman/elm-spa-example

started time in a month

push eventprolic/fpp

prolic

commit sha ca7de3da230ba482992d27254d524831fa2d2774

improve generated equals method of data types

view details

push time in a month

push eventprolic/fpp

prolic

commit sha b1f974ceaa353845829370fbd0919c63967591b7

fix @param docblock for setters

view details

push time in a month

pull request commentLaminas-Commons/LmcRbac

Laminas commons migration

:fireworks:

basz

comment created time in a month

pull request commentLaminas-Commons/LmcRbac

Laminas commons migration

That's what I meant.

On Thu, Jul 2, 2020, 14:46 Eric Richer notifications@github.com wrote:

I'm fine with 1.0, too. Whatever you prefer. I just think that laminas itself isn't on 1.0 either, no?

Not sure what you mean, the laminas versions # are the same as they were in ZF3

— You are receiving this because your review was requested. Reply to this email directly, view it on GitHub https://github.com/Laminas-Commons/LmcRbac/pull/12#issuecomment-653166467, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADAJPDYWTF2QQ3RUW42BWDRZTIYHANCNFSM4OPAWZOQ .

basz

comment created time in a month

pull request commentLaminas-Commons/LmcRbac

Laminas commons migration

I'm fine with 1.0, too. Whatever you prefer. I just think that laminas itself isn't on 1.0 either, no?

On Thu, Jul 2, 2020, 14:36 Eric Richer notifications@github.com wrote:

@visto9259 commented on this pull request.

In composer.json https://github.com/Laminas-Commons/LmcRbac/pull/12#discussion_r449201634 :

 }

}, "autoload-dev": { "psr-4": {

  •  "ZfcRbacTest\\": "test/"
    
  •  "LmcRbacTest\\": "test/"
    
    } }, "extra": { "branch-alias": { "dev-master": "2.4-dev", "dev-develop": "3.0-dev"

Is it wise to release LmcRbac as v1 instead of v3?

Since this is v3 of ZfcRbac, would it makes more sense for users if it is LmcRbac v3?

I don't use this version of Rbac myself, so it is hard for me to judge.

ZfcRbac v2 was released as LmcRbacMvc v3 because of the breaking change in namespace.

— You are receiving this because your review was requested. Reply to this email directly, view it on GitHub https://github.com/Laminas-Commons/LmcRbac/pull/12#discussion_r449201634, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADAJPF4PLJQGOQIARLHDMTRZTHT3ANCNFSM4OPAWZOQ .

basz

comment created time in a month

Pull request review commentLaminas-Commons/LmcRbac

Laminas commons migration

 You can quickly unauthorized access to all admin routes using the following guar  ```php return [-    'zfc_rbac' => [+    'lmc_rbac' => [         'guards' => [             'ZfcRbac\Guard\RouteGuard' => [

Another Zfc here

basz

comment created time in a month

Pull request review commentLaminas-Commons/LmcRbac

Laminas commons migration

 You can also specify optional actions, so that the rule only apply to one or sev  ```php return [-    'zfc_rbac' => [+    'lmc_rbac' => [         'guards' => [             'ZfcRbac\Guard\ControllerGuard' => [

Still Zfc here.

basz

comment created time in a month

Pull request review commentLaminas-Commons/LmcRbac

Laminas commons migration

 any other recipe you'd like to add, please open an issue! - [A Real World Application Part 3 - But Admins can delete everything](/docs/07.%20Cookbook.md#a-real-world-application-part-3---admins-can-delete-everything) - [A Real World Application Part 4 - Only admins have the menu item for managing the posts]     (/docs/07.%20Cookbook.md#a-real-world-application-part-4---checking-permissions-in-the-view)-- [Using ZfcRbac with Doctrine ORM](/docs/07.%20Cookbook.md#using-zfcrbac-with-doctrine-orm)+- [Using LmcRbac with Doctrine ORM](/docs/07.%20Cookbook.md#using-zfcrbac-with-doctrine-orm)     - [How to deal with roles with lot of permissions?](/docs/07.%20Cookbook.md#how-to-deal-with-roles-with-lot-of-permissions)-- [Using ZfcRbac and ZF2 Assetic](/docs/07.%20Cookbook.md#using-zfcrbac-and-zf2-assetic)-- [Using ZfcRbac and ZfcUser](/docs/07.%20Cookbook.md#using-zfcrbac-and-zfcuser)+- [Using LmcRbac and ZF2 Assetic](/docs/07.%20Cookbook.md#using-zfcrbac-and-zf2-assetic)+- [Using LmcRbac and ZfcUser](/docs/07.%20Cookbook.md#using-zfcrbac-and-zfcuser)

We have LmcUser, no?

basz

comment created time in a month

Pull request review commentLaminas-Commons/LmcRbac

Laminas commons migration

 class Module  ### Using delegator factory -ZfcRbac is shipped with a `ZfcRbac\Factory\AuthorizationServiceDelegatorFactory` [delegator factory]+LmcRbac is shipped with a `LmcRbac\Factory\AuthorizationServiceDelegatorFactory` [delegator factory] (http://framework.zend.com/manual/2.3/en/modules/zend.service-manager.delegator-factories.html)

website changed?

basz

comment created time in a month

Pull request review commentLaminas-Commons/LmcRbac

Laminas commons migration

   },   "autoload": {     "psr-4": {-      "ZfcRbac\\": "src/"+      "LmcRbac\\": "src/"     }   },   "autoload-dev": {     "psr-4": {-      "ZfcRbacTest\\": "test/"+      "LmcRbacTest\\": "test/"     }   },   "extra": {     "branch-alias": {       "dev-master": "2.4-dev",       "dev-develop": "3.0-dev"

about composer-replace: no, as the namespaces are changed, this is not a drop-in replacement.

basz

comment created time in a month

Pull request review commentLaminas-Commons/LmcRbac

Laminas commons migration

   },   "autoload": {     "psr-4": {-      "ZfcRbac\\": "src/"+      "LmcRbac\\": "src/"     }   },   "autoload-dev": {     "psr-4": {-      "ZfcRbacTest\\": "test/"+      "LmcRbacTest\\": "test/"     }   },   "extra": {     "branch-alias": {       "dev-master": "2.4-dev",       "dev-develop": "3.0-dev"

only "dev-master": "3.0-dev", no?

basz

comment created time in a month

pull request commentLaminas-Commons/LmcRbac

Laminas commons migration

I'll review later today

On Thu, Jul 2, 2020, 12:11 Bas Kamer notifications@github.com wrote:

I have not tested in my app, but I'll see if I can do that tonight... :-)

— You are receiving this because your review was requested. Reply to this email directly, view it on GitHub https://github.com/Laminas-Commons/LmcRbac/pull/12#issuecomment-653097976, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADAJPAYITX4KH2BRPHG4TLRZSWSXANCNFSM4OPAWZOQ .

basz

comment created time in a month

push eventprolic/fpp

prolic

commit sha f8d4ea06afc422ff4491a5d4e9ec19d0b9c33914

add code coverage ignore annotation to all generated classes

view details

push time in a month

push eventprolic/fpp

prolic

commit sha c35cd0166fba3e3835dcc67fc57c6e335f904892

to-from array generation off of abstract class

view details

push time in a month

push eventprolic/fpp

prolic

commit sha 88b365b0ae26eec305e293eaf077e739dcf53954

argument ending with "y" on list get converted to "ies"

view details

push time in a month

push eventprolic/fpp

prolic

commit sha 15616967adc193d080d11e86f26692d0a991858c

fix code generation

view details

push time in a month

push eventprolic/fpp

prolic

commit sha d816462cbd06fba0e78a890949067523922c1ba3

fix code generation

view details

push time in a month

push eventprolic/fpp

prolic

commit sha 757ea9e0f841fc0bce75de349e0aef76e83ae1f3

fix code generation

view details

push time in a month

push eventprolic/fpp

prolic

commit sha 4870cc36b762bc1a13828e2e79d009f3f8fa7d63

fix code generation

view details

push time in a month

push eventprolic/fpp

prolic

commit sha d7466a71ecd8ad004be5532bda17273e9513309d

php cs fix

view details

push time in a month

push eventprolic/fpp

prolic

commit sha ec3a110ef3bab5c79b3b36185b18c762e31ad858

allow null for equals check

view details

prolic

commit sha 3d336b743308810bd9953fa72522eb7827a217d6

add setters for data types, fix some bugs

view details

push time in a month

push eventprolic/fpp

prolic

commit sha 4e7d6970a7d9a92ac742e2915d4fdc26e40f3b58

fix integer validator in builder

view details

push time in a month

issue closedprooph/event-store

Tests are missing

Having some unit tests here could be great. WDYT?

Related to #393 (which would have been detected by a test)

closed time in 2 months

Nek-

push eventprolic/fpp

prolic

commit sha b1e6de011d9bde37a0fa9c8c55e2babe6ef3a4ae

fix composer deps

view details

push time in 2 months

push eventprolic/fpp

prolic

commit sha ab558381c734d947399f6b07666ae0d4e6548892

update composer deps

view details

push time in 2 months

push eventprolic/fpp

prolic

commit sha 5fe8dc25f26db216b786839ca18ea3b8f3aaf6a3

update composer

view details

push time in 2 months

issue commentmarc-mabe/php-enum

Support phan annotations such as `@phan-return` and `@phan-side-effect-free`?

IMHO we shouldn't add annotations for phan + phpstan + psalm. It adds to much overhead to support all of those and next week we might have another 3 additionally. Pick one and stick to it.

TysonAndre

comment created time in 2 months

push eventprolic/fpp

prolic

commit sha 7e8ffcee45608a25f80d2d897c0507e3a8b136f4

add docs and tests

view details

push time in 2 months

issue openedprolic/fpp

Add conditions

created time in 2 months

issue openedprolic/fpp

Add query type

created time in 2 months

push eventprolic/fpp

prolic

commit sha aa0727655f975c85e12b78d5a90e61656514f99d

move reoccuring functions to fpp namespace

view details

push time in 2 months

push eventprooph/micro

prolic

commit sha db7e11b0d419b919be4b06d5a579226837dbd84c

add not found exception

view details

prolic

commit sha 50c08668254821472a62c94a05e6923bac752fec

Merge branch 'amphp'

view details

push time in 2 months

push eventprolic/fpp

prolic

commit sha fcecb949ec63ee218ed20260effb529093ccfe90

fix from php value generation on command types

view details

push time in 2 months

push eventprolic/fpp

prolic

commit sha fdca3f58ee60ba68e5e106ce7e264396a1b1f5a3

fix event occur generation with nullable types

view details

push time in 2 months

issue openedprolic/fpp

Generate psalm-annotations as well

F.e. @psalm-immutable and @psalm-pure

created time in 2 months

issue commentamphp/cluster

Error in cluster

@kelunik any idea why I need to restart the docker containers before it works?

prolic

comment created time in 2 months

delete branch prooph/micro

delete branch : amphp

delete time in 2 months

push eventprooph/micro

prolic

commit sha ae92786a1be47f57455a8190b51a1a0ac9f334dc

refactor to use amphp and event-store v8

view details

prolic

commit sha f215ee3dc822152a4961476b08a6e4cd7822233f

add tests

view details

prolic

commit sha 03d41488f28586a2c72c039de17b977768c313ce

update travis build

view details

prolic

commit sha 3ffc1df017948c9c6d1a14e5a95733710c9142db

add kernel specs

view details

prolic

commit sha ddd07bdf0df13a9ed3c7058587be982fb224b3db

make handlers return async generators

view details

prolic

commit sha 7c6f8efde4944f94cbcad2b458f9d197373635b4

fix kernel event dispatching

view details

prolic

commit sha 77460d0acce640feb17524442167e3cd43f2006d

update example

view details

prolic

commit sha cbe45afd06143f05aab83c3bd93d33d5928849e1

remove phpunit xml

view details

Sascha-Oliver Prolic

commit sha e99c964ed7288bf8e03d4b8d2b6a5209c1dc8349

Merge pull request #51 from prooph/amphp Refactor to use amphp and event-store v8

view details

push time in 2 months

PR merged prooph/micro

Refactor to use amphp and event-store v8 enhancement

[WIP] knitted with a hot needle - some changes / bugfixes may be required before merge

  • This makes prooph/micro even smaller (only 2 files with less than 200 LOC combined).
  • 100% async using amphp
  • compatible with event-store v8 (async)
  • Support async aggregate handlers

How to use this?

  • extend a class from CommandSpecification, see f.e. UserSpecification in the examples dir
  • add a command map and create dispatcher, see f.e. register_and_change_username.php in the examples dir

Todos:

  • [x] Write Tests
  • [ ] Support Snapshots (see https://github.com/prooph/micro/issues/53)
  • [x] Support Event Publishing
  • [ ] Documentation (see https://github.com/prooph/micro/issues/52)

ping @codeliner @enumag

As the kernel returns an immutable list of all emitted events, you can simply publish them yourself however you like, that's event a dedicated event publisher will not be part of this. Also in most cases you would rely on event store projections to be running anyway.

+869 -2143

3 comments

36 changed files

prolic

pr closed time in 2 months

push eventprooph/micro

prolic

commit sha cbe45afd06143f05aab83c3bd93d33d5928849e1

remove phpunit xml

view details

push time in 2 months

pull request commentprooph/micro

Refactor to use amphp and event-store v8

I added new issues for snapshot support and documentation. I'll merge this to master.

prolic

comment created time in 2 months

issue openedprooph/micro

Add snapshot support

created time in 2 months

issue openedprooph/micro

Update Documentation

created time in 2 months

push eventprooph/micro

prolic

commit sha 77460d0acce640feb17524442167e3cd43f2006d

update example

view details

push time in 2 months

Pull request review commentprooph/micro

[WIP] refactor to use amphp and event-store v8

 function buildCommandDispatcher(             \assert($specification instanceof CommandSpecification);              try {-                $es = yield $specification->handle(stateResolver($eventStore, $specification));+                $iterator = new Producer(function (callable $emit) use ($eventStore, $specification, $readBatchSize): Generator {+                    foreach ($specification->handle(stateResolver($eventStore, $specification, $readBatchSize)) as $eventOrPromise) {+                        if ($eventOrPromise instanceof Promise) {+                            yield $eventOrPromise;+                        } else {+                            yield $emit($eventOrPromise);+                        }+                    }

Awesome, thank you.

prolic

comment created time in 2 months

push eventprooph/micro

prolic

commit sha 7c6f8efde4944f94cbcad2b458f9d197373635b4

fix kernel event dispatching

view details

push time in 2 months

issue commentamphp/cluster

Error in cluster

I can tell now, this problem also happens when using the server without the cluster. But it only happens on first start of the docker container. When I restart the container, everything works fine. It seems to be this way pretty consistent.

prolic

comment created time in 2 months

push eventprolic/fpp

prolic

commit sha ae546e9b28cbdc9c4b9918655afd6d358215d5c9

add named constructors for generated bool types

view details

push time in 2 months

issue openedprolic/fpp

Add non-aggregate root events

Allow parsing / code generation of events without an aggregate id, this can than be used outside the scope of event sourcing.

created time in 2 months

push eventprolic/fpp

prolic

commit sha 01b2f7601c64035a8920844047c3235b5b8edc7f

fix namespace separator in generated code

view details

push time in 2 months

Pull request review commentprooph/micro

[WIP] refactor to use amphp and event-store v8

  namespace Prooph\MicroExample\Model\User; +use Amp\Promise;+use Amp\Success; use InvalidArgumentException;-use Prooph\Common\Messaging\Message;+use Phunkie\Types\ImmList; use Prooph\MicroExample\Model\Command\ChangeUserName; use Prooph\MicroExample\Model\Command\RegisterUser;-use Prooph\MicroExample\Model\Event\UserNameWasChanged;-use Prooph\MicroExample\Model\Event\UserWasRegistered;-use Prooph\MicroExample\Model\Event\UserWasRegisteredWithDuplicateEmail;+use Prooph\MicroExample\Model\Event\UserNameChanged;+use Prooph\MicroExample\Model\Event\UserRegistered;+use Prooph\MicroExample\Model\Event\UserRegisteredWithDuplicateEmail; use Prooph\MicroExample\Model\UniqueEmailGuard;  const registerUser = '\Prooph\MicroExample\Model\User\registerUser'; -function registerUser(callable $stateResolver, RegisterUser $command, UniqueEmailGuard $guard): array+function registerUser(callable $stateResolver, RegisterUser $command, UniqueEmailGuard $guard): Promise {     if ($guard->isUnique($command->email())) {-        return [new UserWasRegistered($command->payload())];+        return new Success(ImmList(new UserRegistered($command->payload())));     } -    return [new UserWasRegisteredWithDuplicateEmail($command->payload())];+    return new Success(ImmList(new UserRegisteredWithDuplicateEmail($command->payload()))); }

maybe can you directly submit a PR to this branch?

prolic

comment created time in 2 months

Pull request review commentprooph/micro

[WIP] refactor to use amphp and event-store v8

  namespace Prooph\MicroExample\Model\User; +use Amp\Promise;+use Amp\Success; use InvalidArgumentException;-use Prooph\Common\Messaging\Message;+use Phunkie\Types\ImmList; use Prooph\MicroExample\Model\Command\ChangeUserName; use Prooph\MicroExample\Model\Command\RegisterUser;-use Prooph\MicroExample\Model\Event\UserNameWasChanged;-use Prooph\MicroExample\Model\Event\UserWasRegistered;-use Prooph\MicroExample\Model\Event\UserWasRegisteredWithDuplicateEmail;+use Prooph\MicroExample\Model\Event\UserNameChanged;+use Prooph\MicroExample\Model\Event\UserRegistered;+use Prooph\MicroExample\Model\Event\UserRegisteredWithDuplicateEmail; use Prooph\MicroExample\Model\UniqueEmailGuard;  const registerUser = '\Prooph\MicroExample\Model\User\registerUser'; -function registerUser(callable $stateResolver, RegisterUser $command, UniqueEmailGuard $guard): array+function registerUser(callable $stateResolver, RegisterUser $command, UniqueEmailGuard $guard): Promise {     if ($guard->isUnique($command->email())) {-        return [new UserWasRegistered($command->payload())];+        return new Success(ImmList(new UserRegistered($command->payload())));     } -    return [new UserWasRegisteredWithDuplicateEmail($command->payload())];+    return new Success(ImmList(new UserRegisteredWithDuplicateEmail($command->payload()))); }

thanks

prolic

comment created time in 2 months

Pull request review commentprooph/micro

[WIP] refactor to use amphp and event-store v8

  namespace Prooph\MicroExample\Model\User; +use Amp\Promise;+use Amp\Success; use InvalidArgumentException;-use Prooph\Common\Messaging\Message;+use Phunkie\Types\ImmList; use Prooph\MicroExample\Model\Command\ChangeUserName; use Prooph\MicroExample\Model\Command\RegisterUser;-use Prooph\MicroExample\Model\Event\UserNameWasChanged;-use Prooph\MicroExample\Model\Event\UserWasRegistered;-use Prooph\MicroExample\Model\Event\UserWasRegisteredWithDuplicateEmail;+use Prooph\MicroExample\Model\Event\UserNameChanged;+use Prooph\MicroExample\Model\Event\UserRegistered;+use Prooph\MicroExample\Model\Event\UserRegisteredWithDuplicateEmail; use Prooph\MicroExample\Model\UniqueEmailGuard;  const registerUser = '\Prooph\MicroExample\Model\User\registerUser'; -function registerUser(callable $stateResolver, RegisterUser $command, UniqueEmailGuard $guard): array+function registerUser(callable $stateResolver, RegisterUser $command, UniqueEmailGuard $guard): Promise {     if ($guard->isUnique($command->email())) {-        return [new UserWasRegistered($command->payload())];+        return new Success(ImmList(new UserRegistered($command->payload())));     } -    return [new UserWasRegisteredWithDuplicateEmail($command->payload())];+    return new Success(ImmList(new UserRegisteredWithDuplicateEmail($command->payload()))); }

@enumag I ran into issues with this. On yield $eventOrPromise; the promises is yielded, but not assigned to the variable in the handler function. $state = yield $stateResolver(); results in $state = null.

prolic

comment created time in 2 months

push eventprolic/fpp

prolic

commit sha c2dfec4e2edfcfac7b936b63a5988b1b88a62172

fix from array class name on event + command

view details

push time in 2 months

push eventprolic/fpp

prolic

commit sha 894270500d92cbc5b5c92ca1f563b97e9c9c95da

fix builders for nullable on to array

view details

push time in 2 months

push eventprooph/documentation

Maxime Veber

commit sha 12425aa9fa443333378848238105c9a50672e4b5

Update readmodels.md

view details

Sascha-Oliver Prolic

commit sha 2269ee37f79d7457f4b239d832920beb0ccbd615

Merge pull request #14 from Nek-/patch-1 Fix documentation about readmodels

view details

push time in 2 months

PR merged prooph/documentation

Fix documentation about readmodels enhancement

Fix a lot of headache on 2 points:

  1. add the notice about the dash interpretation of eventstore
  2. Do not use $resolvedEvent->originalEvent() (which is wrong) but $resolvedEvent->event()

I also added how to handle errors, just because it's a must-have and not that obvious. (Actually I was like "excuse me wtf? amp is precisely designed to be able to throw exception >.>'", then I figure out it was to follow the .NET API, which is completely legit)

+18 -5

0 comment

1 changed file

Nek-

pr closed time in 2 months

Pull request review commentprooph/documentation

Fix documentation about readmodels

 c) Write a script that subscribes to it. * * *  Your event streams should be organized as one stream per aggregate. If you have 5 users in your system and the aggregate ids are simply `1`, `2`, `3`, `4`, `5`, then you may have 5 streams with these names:-`user-1`, `user-2`, `user-3`, `user-4`, `user-5`.+`user-1`, `user-2`, `user-3`, `user-4`, `user-5`. Your stream name (before id) **cannot contain dashes** because eventstore use them with this patern `aggregateCategory-{id}` (id can contain dashes).

for configuration see here: https://eventstore.com/docs/projections/system-projections/index.html?tabs=tabid-5

Nek-

comment created time in 2 months

Pull request review commentprooph/documentation

Fix documentation about readmodels

 class UserEventAppeared         ?int $retryCount = null     ): Promise     {-        switch ($resolvedEvent->originalEvent()->eventType()) {+        switch ($resolvedEvent->event()->eventType()) {             case 'user-registered':-                $data = $resolvedEvent->originalEvent()->data();+                $data = $resolvedEvent->event()->data();

fyi: the original event is the link-event, because that's what you subscribed to.

Nek-

comment created time in 2 months

Pull request review commentprooph/documentation

Fix documentation about readmodels

 c) Write a script that subscribes to it. * * *  Your event streams should be organized as one stream per aggregate. If you have 5 users in your system and the aggregate ids are simply `1`, `2`, `3`, `4`, `5`, then you may have 5 streams with these names:-`user-1`, `user-2`, `user-3`, `user-4`, `user-5`.+`user-1`, `user-2`, `user-3`, `user-4`, `user-5`. Your stream name (before id) **cannot contain dashes** because eventstore use them with this patern `aggregateCategory-{id}` (id can contain dashes).
  1. typo: "pattern" not "patern".
  2. using "dash" is only the default, it's something you can configure, f.e. you can use "." instead, if you prefer that.
Nek-

comment created time in 2 months

push eventprolic/fpp

prolic

commit sha 496424f7665bc58a8c7dbbc921141ee415fd6fff

fix occur method generation on event type

view details

push time in 2 months

more