Comments (3)
I think the issue might be that the load method here: https://github.com/rcrowe/TwigBridge/blob/master/src/Engine/Compiler.php is sending in the path to $this->twig->load($path);
:
public function load($path)
{
// Load template
try {
$tmplWrapper = $this->twig->load($path);
} catch (Exception $e) {
throw new InvalidArgumentException("Error loading $path: ". $e->getMessage(), $e->getCode(), $e);
}
return $tmplWrapper;
}
If we check the load method in twig, it takes in a name: https://github.com/twigphp/Twig/blob/3.x/src/Environment.php
public function load($name): TemplateWrapper
{
if ($name instanceof TemplateWrapper) {
return $name;
}
return new TemplateWrapper($this, $this->loadTemplate($this->getTemplateClass($name), $name));
}
Should we normalize the path before sending it to twig? Something like this maybe:
public function load($path)
{
// Load template
try {
$path = str_replace(resource_path('views') . '/', '', $path);
if (substr($path, -5) === ".twig") {
$path = substr($path, 0, -5);
}
$path = ViewName::normalize($path);
$tmplWrapper = $this->twig->load($path);
} catch (Exception $e) {
throw new InvalidArgumentException("Error loading $path: ". $e->getMessage(), $e->getCode(), $e);
}
return $tmplWrapper;
}
from twigbridge.
Found this PR and my issue sounds similar to what is mentioned in this: #424
from twigbridge.
@barryvdh I've created a PR for this fix: #439
I'm not sure if this is the proper solution for this so please suggest any updates or alternative approaches if required.
Thanks!
Update: Closed the PR as it will not work in all the cases, for example with themes. Could this potentially be a problem with my config? Any help on this is appreciated. Thanks!
from twigbridge.
Related Issues (20)
- Enabled Laravel 8 HOT 2
- Include markdown files
- Migrate to Github actions
- store templates in database HOT 1
- [Question] Laravel8 + TwigBridge + GraphQL Twig extension -- example or available package?
- trans node is missing?
- Full example for adding an existing Twig Extension to Laravel8 +TwigBridge?
- How to use twigphp/cache-extra? HOT 2
- Not working in Lumen HOT 1
- View::composer not working v.0.14.0 HOT 3
- Deprecated Messages [php 8.2+]
- Bridge Version says it's v0.10.0 on v0.14.1
- os
- How would I go about adding an extension that needs configuration? HOT 1
- Relative include paths don't work when using namespaces HOT 4
- Laravel Collective HTML package is abandoned HOT 5
- TwigBridge 0.14.* not compatible with Twig 3.9.0 HOT 5
- $path being null causes deprecation warnings in logs when using Telescope
- Vite in Twig (rcrowe/TwigBridge) for Laravel 11 [SOLUTION]
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from twigbridge.