-
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
96 changed files
with
537 additions
and
733 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -29,7 +29,7 @@ GitHub. | |
Then clone your fork: | ||
|
||
```bash | ||
$ git clone [email protected]:darkwood-fr/railway-fbp.git | ||
$ git clone [email protected]:darkwood-fr/flow.git | ||
$ git checkout -b bug-or-feature-description | ||
``` | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
The MIT License (MIT) | ||
|
||
Copyright (c) 2022 Mathieu Ledru <[email protected]> | ||
Copyright (c) 2022 Mathieu Ledru <[email protected]> | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
this software and associated documentation files (the "Software"), to deal in | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,41 +1,40 @@ | ||
<p align="center"> | ||
<a href="https://github.com/darkwood-fr/railway-fbp"> | ||
<img src="docs/images/concept.png" width="auto" height="128px" alt="Railway Flow Based Programming"> | ||
<a href="https://github.com/darkwood-fr/flow"> | ||
<img src="docs/images/logo.png" width="auto" height="128px" alt="Flow"> | ||
</a> | ||
</p> | ||
|
||
## Why ? | ||
|
||
Railway Flow Based Programming concept aims to solve | ||
Flow concept aims to solve | ||
|
||
- Adopt asynchronous as native implementation | ||
- Build your code with functional programming and monads | ||
- Assemble your code visually | ||
|
||
## Installation | ||
|
||
PHP 8.1 is the minimal version to use _Railway Flow Based Programming_ is 8.1 | ||
PHP 8.1 is the minimal version to use _Flow_ is 8.1 | ||
The recommended way to install it through [Composer](http://getcomposer.org/) and execute | ||
|
||
```bash | ||
composer require darkwood/railway-fbp | ||
composer require darkwood/flow | ||
``` | ||
|
||
## Usage | ||
|
||
A working script is available in the bundled `examples` directory | ||
A working script is available in the bundled `examples` directory in `packages/php` | ||
|
||
- in `packages/php` | ||
Run Rail : `php examples/rail.php` | ||
- Run Flow : `php examples/flow.php` | ||
- Start Server : `php examples/server.php` | ||
Start Client(s) : `php examples/client.php` | ||
|
||
Messaging part require to install [Docker](https://www.docker.com) and execute `docker-compose up -d` | ||
|
||
## Documentation | ||
|
||
[https://darkwood-fr.github.io/railway-fbp](https://darkwood-fr.github.io/railway-fbp) | ||
[https://darkwood-fr.github.io/flow](https://darkwood-fr.github.io/flow) | ||
|
||
## License | ||
|
||
_Railway Flow Based Programming_ is released under the MIT License. | ||
_Flow_ is released under the MIT License. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,8 +18,6 @@ function remote() | |
|
||
git pull origin $CURRENT_BRANCH | ||
|
||
remote php [email protected]:darkwood-fr/railway-fbp-php.git | ||
remote symfony [email protected]:darkwood-fr/railway-fbp-symfony.git | ||
remote php [email protected]:darkwood-fr/flow-php.git | ||
|
||
split 'packages/php' php | ||
split 'packages/symfony' symfony |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -54,14 +54,14 @@ git push origin --tags | |
bash bin/splitsh-deploy | ||
|
||
# Tag Components | ||
for REMOTE in php symfony | ||
for REMOTE in php | ||
do | ||
echo "" | ||
echo "" | ||
echo "Releasing $REMOTE"; | ||
|
||
TMP_DIR="../railway-fbp-split" | ||
REMOTE_URL="[email protected]:darkwood-fr/railway-fbp-$REMOTE.git" | ||
TMP_DIR="../flow-split" | ||
REMOTE_URL="[email protected]:darkwood-fr/flow-$REMOTE.git" | ||
|
||
rm -rf $TMP_DIR; | ||
mkdir $TMP_DIR; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
--- | ||
title: "Flow" | ||
description: "Flow." | ||
lead: "Flow." | ||
date: 2020-10-13T15:21:01+02:00 | ||
lastmod: 2020-10-13T15:21:01+02:00 | ||
draft: false | ||
images: [] | ||
menu: | ||
docs: | ||
parent: "getting-started" | ||
weight: 20 | ||
toc: true | ||
--- | ||
|
||
# Flow | ||
|
||
## Flow implementation | ||
|
||
According to [Wikipedia](https://en.wikipedia.org/wiki/Monad_(functional_programming)), Monads is an abstract generic structure that get its usage in function composition. Monads can shortly considered as `Programming with effects`. | ||
|
||
We consider `Flows` as a set of elements in our ensemble as a Monad implementation : | ||
- By using `job` as basic function type within the `Flow`. | ||
- By using `fn` as a binary operation, `Flow` can be composed together with others `Flow` element. | ||
|
||
A `Flow` can process one or many `Ips` which has its application for asynchronous programming when mixing with [`Drivers`](drivers.md). | ||
|
||
## Flow | ||
|
||
This is the standard Flow implementation that support asynchronous `Ip` processing. | ||
|
||
## FlowDecorator | ||
|
||
This is useful for implementing the [decorator design pattern](https://en.wikipedia.org/wiki/Decorator_pattern). | ||
|
||
## TransportFlow | ||
|
||
TransportFlow will interact with Flow with Producer and Sender. | ||
|
||
## YFlow | ||
|
||
YFlow use YCombinator to provide recursion. | ||
|
||
## Make your own Flow | ||
|
||
You can make your custom Flow by implementing `Flow\FlowInterface`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -15,7 +15,7 @@ toc: true | |
|
||
The MIT License (MIT) | ||
|
||
Copyright (c) 2022 Mathieu Ledru <[email protected]> | ||
Copyright (c) 2022 Mathieu Ledru <[email protected]> | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
this software and associated documentation files (the "Software"), to deal in | ||
|
Oops, something went wrong.