Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[TwigBridge] Apply some changes to support Bootstrap4-stable #25715

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 972 commits into from
Closed

[TwigBridge] Apply some changes to support Bootstrap4-stable #25715

wants to merge 972 commits into from

Conversation

mpiot
Copy link
Contributor

@mpiot mpiot commented Jan 8, 2018

Q A
Branch? 3.4
Bug fix? yes
New feature? no
BC breaks? no
Deprecations? no
Tests pass?
Fixed tickets #25655 #25635 #24435
License MIT
Doc PR

I apologize in advance for the presentation of the PR, this is my first time.

This fixes the following errors:

Amrouche Hamza and others added 30 commits December 11, 2017 23:15
…fit)

This PR was merged into the 4.1-dev branch.

Discussion
----------

[Validator][HttpFoundation] fix the message test

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

@fabpot I just forgot to update HttpFoundation test and there was one I missed when modifying the tests.

Commits
-------

d2d8049 [Validator][HttpFoundation] fix the message test
…(wouterj)

This PR was merged into the 4.1-dev branch.

Discussion
----------

[Console] Fixed exit code with non-integer throwable code

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

The exception/error code in PHP doesn't have to be an integer:

 > Returns the exception code as integer in Exception but possibly as other type in Exception descendants (for example as string in PDOException).
> http://php.net/manual/en/exception.getcode.php#refsect1-exception.getcode-returnvalues

This means that a "Return value of Symfony\Component\Console\Event\ConsoleErrorEvent::getExitCode() must be of the type integer, string returned" error is shown when e.g. an uncatched PDOException is handled by the console error event.

Commits
-------

ca86e65 Fixed exit code with non-integer throwable code
This PR was squashed before being merged into the 4.1-dev branch (closes #25148).

Discussion
----------

Pr/workflow name as graph label

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

This pull request added an option to the workflow dumper command, which allows you to add a graph label with the workflow name to the output. Without the option nothing changed the behavior from before.

Example call:

```bash
bin/console workflow:dump <workflowname> --label=custom_label
```

Commits
-------

0afce8d Pr/workflow name as graph label
* 3.4: (22 commits)
  fix merge
  [Translation] Fix InvalidArgumentException when using untranslated plural forms from .po files
  Fixed exit code with non-integer throwable code
  [HttpFoundation] Support 0 bit netmask in IPv6 ()
  [DI] Impossible to set an environment variable and then an array as container parameter
  [Process] remove false-positive BC breaking exception on Windows
  Tweaking class not found autowiring error
  [LDAP] added missing dots at the end of some exception messages.
  [TwigBridge] Add missing dev requirement for workflow
  fixed #25440
  empty lines don't count for indent detection
  Set `width: auto` on WebProfiler toolbar's reset.
  [Lock] Fix incorrect phpdoc
  [Process] Dont rely on putenv(), it fails on ZTS PHP
  [HttpKernel] detect deprecations thrown by container initialization during tests
  [HttpKernel] Fix logging of post-terminate errors/exceptions
  [DI] Add context to service-not-found exceptions thrown by service locators
  [Debug] Fix catching fatal errors in case of nested error handlers
  [VarDumper] Fixed file links leave blank pages when ide is configured
  Fix hidden currency element with Bootstrap 3 theme
  ...
* 3.4:
  [Form] fix how form type is referenced in test
  [Console] Fix console tests by adding the missing condition
* 4.0: (25 commits)
  [Form] fix how form type is referenced in test
  fix merge
  [Console] Fix console tests by adding the missing condition
  [Translation] Fix InvalidArgumentException when using untranslated plural forms from .po files
  Fixed exit code with non-integer throwable code
  [HttpFoundation] Support 0 bit netmask in IPv6 ()
  [DI] Impossible to set an environment variable and then an array as container parameter
  [Process] remove false-positive BC breaking exception on Windows
  Tweaking class not found autowiring error
  [LDAP] added missing dots at the end of some exception messages.
  [TwigBridge] Add missing dev requirement for workflow
  fixed #25440
  empty lines don't count for indent detection
  Set `width: auto` on WebProfiler toolbar's reset.
  [Lock] Fix incorrect phpdoc
  [Process] Dont rely on putenv(), it fails on ZTS PHP
  [HttpKernel] detect deprecations thrown by container initialization during tests
  [HttpKernel] Fix logging of post-terminate errors/exceptions
  [DI] Add context to service-not-found exceptions thrown by service locators
  [Debug] Fix catching fatal errors in case of nested error handlers
  ...
* 4.0:
  fix merge
…) from the trait to the class & use PSR-11 (nicolas-grekas)

This PR was merged into the 4.1-dev branch.

Discussion
----------

[FrameworkBundle] Move AbstractController::getParameter() from the trait to the class & use PSR-11

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Feels more specific this way to me. Ping @chalasr

Commits
-------

3051289 [FrameworkBundle] Move AbstractController::getParameter() from the trait to the class & use PSR-11
This PR was merged into the 4.1-dev branch.

Discussion
----------

[TwigBridge] Fix workflow test with deps=low

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | none
| License       | MIT
| Doc PR        | none

In the original PR the tests were not failling but we should not use the new feature with deps=low until it fetch the branch with the new feature. So this fix the test for the WorkflowExtension in TwigBridge.

Commits
-------

e5c6b92 [TwigBridge] Fix workflow test with deps=low
* 3.4:
  add missing logout_on_user_change options
  [HttpFoundation] Add immutable to setCache's PHPDoc
* 4.0:
  add missing logout_on_user_change options
  [HttpFoundation] Add immutable to setCache's PHPDoc
…yException Message (Simperfit)

This PR was merged into the 4.1-dev branch.

Discussion
----------

[PropertyAccess] add more information to NoSuchPropertyException Message

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| Bug fix?      | no
| New feature?  | yes <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md files -->
| Tests pass?   | no
| Fixed tickets | #24742
| License       | MIT
| Doc PR        |

Add more context to NoSuchPropertyException as discussed in the issue.

Commits
-------

dee00f8 [PropertyAccess] add more information to NoSuchPropertyException Message
… (ro0NL)

This PR was merged into the 4.1-dev branch.

Discussion
----------

[HttpKernel] Decouple exception logging from rendering

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #25266
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

Given your controller throws an exception and a custom exception listener sets a response.

Before
![image](https://user-images.githubusercontent.com/1047696/33676886-46e90e0a-dab7-11e7-9a3a-24c70b23d4e0.png)

After
![image](https://user-images.githubusercontent.com/1047696/33676832-1ac4f0aa-dab7-11e7-9ac4-483fcbdc06ee.png)

;-)

edit: raising the priority for the profiler listener fixes the exception panel also.

Commits
-------

a203d31 [HttpKernel] Decouple exception logging from rendering
This PR was merged into the 4.1-dev branch.

Discussion
----------

[HttpFoundation] sync upgrade and changelog files

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Commits
-------

e54109b sync upgrade and changelog files
…bbuh)

This PR was merged into the 4.1-dev branch.

Discussion
----------

[FrameworkBundle] add email_validation_mode option

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Commits
-------

cda5825 add email_validation_mode option
* 3.4:
  fixed wrong merge
  Tweak message to be Flex friendly
  [Routing] fixed tests
  Fixing wrong class_exists on interface
  Preserve percent-encoding in URLs when performing redirects in the UrlMatcher
  [Console] Fix a bug when passing a letter that could be an alias
  add missing validation options to XSD file
  Take advantage of AnnotationRegistry::registerUniqueLoader
  [DI] Optimize Container::get() for perf
  fix merge
  Fix tests
  Refactoring tests.
* 4.0:
  fixed wrong merge
  Tweak message to be Flex friendly
  [Routing] fixed tests
  Fixing wrong class_exists on interface
  Preserve percent-encoding in URLs when performing redirects in the UrlMatcher
  removed FIXME
  [Console] Fix a bug when passing a letter that could be an alias
  add missing validation options to XSD file
  Take advantage of AnnotationRegistry::registerUniqueLoader
  [DI] Optimize Container::get() for perf
  fix merge
  Fix tests
  Refactoring tests.
* 3.4:
  [Routing] Fix tests
  [SecurityBundle] fix test by always disabling CSRF
  [FrameworkBundle] remove esi/ssi renderers if inactive
* 4.0:
  [Routing] Fix tests
  [SecurityBundle] fix test by always disabling CSRF
  [FrameworkBundle] remove esi/ssi renderers if inactive
* 3.4:
  Revert "bug #25151 [FrameworkBundle] Automatically enable the CSRF protection if CSRF manager exists (sroze)"
  Revert "bug #25502 Fixing wrong class_exists on interface (weaverryan)"
* 4.0:
  Revert "bug #25151 [FrameworkBundle] Automatically enable the CSRF protection if CSRF manager exists (sroze)"
  Revert "bug #25502 Fixing wrong class_exists on interface (weaverryan)"
@mpiot
Copy link
Contributor Author

mpiot commented Feb 12, 2018

I've fix the MoneyType, to display correctly the red border, and remove the help block, I'll do an other PR with it, and maybe add in form an help declaration to use it in all forms.

@Nyholm
Errors are just displayed in the label, it's removed from the row, then we don't display it via the form_row. And I need to display errors in label for checkbox and radio too. Reuse a block what is declared in an other block is not a very nice way to do (hard to find).

The best way would be to declare a new block, but a new block that just use the form_errors block, have no sense, right? (I've remove the if statementtoo, because already used in form_errors)

@vudaltsov and @MaPePeR
Apparently, this is done to avoid to display twice the label, I've try your proposition, but then Twig display the label twice, in the form_row and in radio_widget/checkbox_widget. Then, by adding the input directly in the label block, we can do a test if the widget exists. When label is called by the form_row, it doesn't, we doesnt' display the legend, when it called by the radio_widget or checkbox_widget, we passed the widget, then it exists, it display the legend and add the input.

It's the way used by the person that have write it. I see if I find a way to do, but I think, I prefer keept it at the moment. And if a person, want just display the widget, for a checkbox, it important to have the label too, and not only the 'box', no ?

Copy link
Member

@Nyholm Nyholm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you’ve done a great job with this PR. As mentioned by others there could possibly be some improvements that will make the Twig more beautiful but I would explore that in a different PR.

Im 👍

(Make sure you ping me in the PR with the help block)

@vudaltsov
Copy link
Contributor

@mpiot , got it! I agree, it's time to finish this PR. Thank you 👍

nicolas-grekas and others added 12 commits February 12, 2018 15:11
…-grekas)

This PR was merged into the 4.1-dev branch.

Discussion
----------

[DI] Move "include_once" out of closure factories

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

They were previously dumped inside the closures.

Commits
-------

bbcd3d7 [DI] Move "include_once" out of closure factories
…s-grekas)

This PR was merged into the 4.1-dev branch.

Discussion
----------

[Intl] Add polyfill for Locale::canonicalize()

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Required after #26069

Commits
-------

972a330 [Intl] Add polyfill for Locale::canonicalize()
…revious-Debug-Token header (ro0NL)

This PR was squashed before being merged into the 4.1-dev branch (closes #22447).

Discussion
----------

[WebProfilerBundle] Imply forward request by a new X-Previous-Debug-Token header

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | #... <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

TLDR; imply a "forwarded" request in the profiler if one _returns_ a response with a x-debug-token set. Otherwise dont.
____

Currently a forward request is implied by the WDT/profiler based on the latest sub-request made, however the main request can return it's own response, or one from a non-latest sub-request. The current behavior is a bit misleading imo.

```php
public function indexAction(Request $request)
{
    $bar1 = $this->forward(__CLASS__.'::barAction');
    $bar2 = $this->forward(__CLASS__.'::bar2Action');
    return $bar1;
}
```

It shows the request was forwarded to `bar2Action`. This changes that, so that `barAction` is shown instead. No forward is implied if a new response was returned by `indexAction`.

![image](https://cloud.githubusercontent.com/assets/1047696/25064022/e24d999e-21f1-11e7-8f94-afa3fad7462f.png)

~~Note we dont really need the collector in the framework bundle anymore with this approach.~~ deprecated it.

Commits
-------

07dd09d [WebProfilerBundle] Imply forward request by a new X-Previous-Debug-Token header
* 3.4:
  [Routing] Throw 405 instead of 404 when redirect is not possible
  [Process] fix test case
  Add security.tl.xlf to legacy directory
  [Security][Validator] Add translations for Tagalog
  fixed typo
  Typo fix in security component lithuanian translation.
  [TwigBundle][WebProfilerBundle] Fix JS collision
  [Process] Check PHP_BINDIR before $PATH in PhpExecutableFinder
* 4.0:
  [Routing] Throw 405 instead of 404 when redirect is not possible
  [Process] fix test case
  Add security.tl.xlf to legacy directory
  [Security][Validator] Add translations for Tagalog
  fixed typo
  Typo fix in security component lithuanian translation.
  [TwigBundle][WebProfilerBundle] Fix JS collision
  [Process] Check PHP_BINDIR before $PATH in PhpExecutableFinder
* 4.0:
  Fix merge
…e regexp (nicolas-grekas)

This PR was merged into the 4.1-dev branch.

Discussion
----------

 [Routing] Match 77.7x faster by compiling routes in one regexp

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Builds on top of #25961 and http://nikic.github.io/2014/02/18/Fast-request-routing-using-regular-expressions.html to make routing 77.7x faster (measured when matching the last dynamic route of 400 static + 400 dynamic routes.)

More benchs welcomed.

- [x] check static routes first in a switch
- [x] group same-modifiers regexps
- [x] put condition-less routes in a static map, in a switch's "default"
- [x] match host+pathinfo at the same time
- [x] group same-host regexps in sub-patterns
- [x] consider the host to move more static routes in the static switch
- [x] move static single-route "case" to "default" by adding requirements to $routes
- [x] group same-static-prefix in sub-patterns
- [x] group consecutive same-regex in a single "case"
- [x] move dynamic single-route "case" to "default" by adding requirements to $routes
- [x] extract host variables from the main match and remove the current 2nd match
- [x] extend same-prefix grouping to placeholders
- [x] group same-suffix hosts together

Here is my benchmarking code:

```php
<?php

namespace Symfony\Component\Routing;

require 'vendor/autoload.php';

$routes = new RouteCollection();

for ($i = 0; $i < 400; ++$i) {
    $routes->add('r'.$i, new Route('/abc'.$i));
    $routes->add('f'.$i, new Route('/abc{foo}/'.$i));
}

$dumper = new Matcher\Dumper\PhpMatcherDumper($routes);

eval('?'.'>'.$dumper->dump());

$router = new \ProjectUrlMatcher(new RequestContext());

$i = 10000;
$s = microtime(1);

while (--$i) {
    $router->match('/abcdef/399');
}

echo 'Symfony: ', 1000 * (microtime(1) - $s), "\n";

namespace FastRoute;

$dispatcher = simpleDispatcher(function(RouteCollector $r) {
    for ($i = 0; $i < 400; ++$i) {
        $r->addRoute('GET', '/abc'.$i, 'r'.$i);
        $r->addRoute('GET', '/abc{foo}/'.$i, 'f'.$i);
    }
});

$i = 10000;
$s = microtime(1);

while (--$i) {
    $dispatcher->dispatch('GET', '/abcdef/399');
}

echo 'FastRoute: ', 1000 * (microtime(1) - $s), "\n";
```

Commits
-------

f933f70 [Routing] Match 77.7x faster by compiling routes in one regexp
@nicolas-grekas nicolas-grekas changed the title [TwigBridge] [Bootstrap 4] Apply some changes to support Beta 3 [TwigBridge] Apply some changes to support Bootstrap4-stable Feb 13, 2018
@nicolas-grekas
Copy link
Member

nicolas-grekas commented Feb 13, 2018

Thank you @mpiot.
The git history was completely messed up so I created #26167 instead.
Please don't submit a PR based on a patched master branch next time :)

@mpiot
Copy link
Contributor Author

mpiot commented Feb 13, 2018

@nicolas-grekas
Yes, I'm sorry, I've neve do it before...

Then I can delete the fork in my repository and re-fork ? For the next PR, I create a new branch, and use it for the PR ? (thanks for your help)

@Nyholm
Copy link
Member

Nyholm commented Feb 13, 2018

There is no need to delete your fork. Just do a hard reset on symfony/master and push it to fork/master.

Since you need some changes to be merged before you can start on your second PR I would wait until #26167 is merged. Then start working on your second one.

nicolas-grekas added a commit that referenced this pull request Feb 15, 2018
…le (mpiot, Nyholm)

This PR was merged into the 3.4 branch.

Discussion
----------

[TwigBridge] Apply some changes to support Bootstrap4-stable

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #25655 #25635 #24435
| License       | MIT
| Doc PR        | -

Follow up of #25715, see discussion there.

This fixes the following errors:
- Delete form-control-label, don't used in Bootstrap 4
- Replace col-form-legend by col-form-label
- Separate the label and input (before the input was in the label)
- Use form-check-inline to put radio and/or checkboxes inline
- Add support of custom form for radio and checkboxes
- Fix input-group: MoneyType (Issue #25655), PercentType
- Remove form-control duplication (Issue #25635)
- Fix Errors in label (#24435)

Commits
-------

14e2282 Fixed broken tests
cf4e956 [TwigBridge] Apply some changes to support Bootstrap4-stable
symfony-splitter pushed a commit to symfony/form that referenced this pull request Feb 15, 2018
…le (mpiot, Nyholm)

This PR was merged into the 3.4 branch.

Discussion
----------

[TwigBridge] Apply some changes to support Bootstrap4-stable

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #25655 #25635 #24435
| License       | MIT
| Doc PR        | -

Follow up of symfony/symfony#25715, see discussion there.

This fixes the following errors:
- Delete form-control-label, don't used in Bootstrap 4
- Replace col-form-legend by col-form-label
- Separate the label and input (before the input was in the label)
- Use form-check-inline to put radio and/or checkboxes inline
- Add support of custom form for radio and checkboxes
- Fix input-group: MoneyType (Issue #25655), PercentType
- Remove form-control duplication (Issue #25635)
- Fix Errors in label (#24435)

Commits
-------

14e2282 Fixed broken tests
cf4e956 [TwigBridge] Apply some changes to support Bootstrap4-stable
fabpot added a commit that referenced this pull request Feb 21, 2018
This PR was merged into the 3.4 branch.

Discussion
----------

fix custom radios/inputs for checkbox/radio type

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   |
| Fixed tickets | #25715
| License       | MIT
| Doc PR        |

Hey, I tried new changes in bootstrap 4 layout. Unfortunatelly custom-radios/checkboxes seems to work only for ChoiceType/EntityType but not for CheckboxType/RadioType. I added changes which I belive fix this issue.

Commits
-------

dd6d1dd fix custom radios/inputs for checkbox/radio type
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.