mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-12 19:06:27 +03:00
How to use Laravel function in own PHP file? #4303
Closed
opened 2026-02-05 08:29:27 +03:00 by OVERLORD
·
7 comments
No Branch/Tag Specified
development
l10n_development
release
llm_only
vectors
v25-11
docker_env
drawio_rendering
user_permissions
ldap_host_failover
svg_image
prosemirror
captcha_example
fix/video-export
v25.12.3
v25.12.2
v25.12.1
v25.12
v25.11.6
v25.11.5
v25.11.4
v24.11.4
v25.11.3
v25.11.2
v25.11.1
v25.11
v25.07.3
v25.07.2
v25.07.1
v25.07
v25.05.2
v25.05.1
v25.05
v25.02.5
v25.02.4
v25.02.3
v25.02.2
v25.02.1
v25.02
v24.12.1
v24.12
v24.10.3
v24.10.2
v24.10.1
v24.10
v24.05.4
v24.05.3
v24.05.2
v24.05.1
v24.05
v24.02.3
v24.02.2
v24.02.1
v24.02
v23.12.3
v23.12.2
v23.12.1
v23.12
v23.10.4
v23.10.3
v23.10.2
v23.10.1
v23.10
v23.08.3
v23.08.2
v23.08.1
v23.08
v23.06.2
v23.06.1
v23.06
v23.05.2
v23.05.1
v23.05
v23.02.3
v23.02.2
v23.02.1
v23.02
v23.01.1
v23.01
v22.11.1
v22.11
v22.10.2
v22.10.1
v22.10
v22.09.1
v22.09
v22.07.3
v22.07.2
v22.07.1
v22.07
v22.06.2
v22.06.1
v22.06
v22.04.2
v22.04.1
v22.04
v22.03.1
v22.03
v22.02.3
v22.02.2
v22.02.1
v22.02
v21.12.5
v21.12.4
v21.12.3
v21.12.2
v21.12.1
v21.12
v21.11.3
v21.11.2
v21.11.1
v21.11
v21.10.3
v21.10.2
v21.10.1
v21.10
v21.08.6
v21.08.5
v21.08.4
v21.08.3
v21.08.2
v21.08.1
v21.08
v21.05.4
v21.05.3
v21.05.2
v21.05.1
v21.05
v21.04.6
v21.04.5
v21.04.4
v21.04.3
v21.04.2
v21.04.1
v21.04
v0.31.8
v0.31.7
v0.31.6
v0.31.5
v0.31.4
v0.31.3
v0.31.2
v0.31.1
v0.31.0
v0.30.7
v0.30.6
v0.30.5
v0.30.4
v0.30.3
v0.30.2
v0.30.1
v0.30.0
v0.29.3
v0.29.2
v0.29.1
v0.29.0
v0.28.3
v0.28.2
v0.28.1
v0.28.0
v0.27.5
v0.27.4
v0.27.3
v0.27.2
v0.27.1
v0.27
v0.26.4
v0.26.3
v0.26.2
v0.26.1
v0.26.0
v0.25.5
v0.25.4
v0.25.3
v0.25.2
v0.25.1
v0.25.0
v0.24.3
v0.24.2
v0.24.1
v0.24.0
v0.23.2
v0.23.1
v0.23.0
v0.22.0
v0.21.0
v0.20.3
v0.20.2
v0.20.1
v0.20.0
v0.19.0
v0.18.5
v0.18.4
v0.18.3
v0.18.2
v0.18.1
v0.18.0
v0.17.4
v0.17.3
v0.17.2
v0.17.1
v0.17.0
v0.16.3
v0.16.2
v0.16.1
v0.16.0
v0.15.3
v0.15.2
v0.15.1
v0.15.0
v0.14.3
v0.14.2
v0.14.1
v0.14.0
v0.13.1
v0.13.0
v0.12.2
v0.12.1
v0.12.0
v0.11.2
v0.11.1
v0.11.0
v0.10.0
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.2
v0.8.1
v0.8.0
v0.7.6
v0.7.5
v0.7.4
v0.7.3
0.7.2
v.0.7.1
v0.7.0
v0.6.3
v0.6.2
v0.6.1
v0.6.0
v0.5.0
Labels
Clear labels
🎨 Design
📖 Docs Update
🐛 Bug
🐛 Bug
:cat2:🐈 Possible duplicate
💿 Database
☕ Open to discussion
💻 Front-End
🐕 Support
🚪 Authentication
🌍 Translations
🔌 API Task
🏭 Back-End
⛲ Upstream
🔨 Feature Request
🛠️ Enhancement
🛠️ Enhancement
🛠️ Enhancement
❤️ Happy feedback
🔒 Security
🔍 Pending Validation
💆 UX
📝 WYSIWYG Editor
🌔 Out of scope
🔩 API Request
:octocat: Admin/Meta
🖌️ View Customization
❓ Question
🚀 Priority
🛡️ Blocked
🚚 Export System
♿ A11y
🔧 Maintenance
> Markdown Editor
pull-request
Mirrored from GitHub Pull Request
No Label
🐕 Support
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/BookStack#4303
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @ikabod on GitHub (Nov 7, 2023).
Attempted Debugging
Searched GitHub Issues
Describe the Scenario
Hello,
a PHP file in the public folder of BookStack contains the following content:
When the file is called, it throws the following error:
Fatal error: Uncaught ReflectionException: Class "translator" does not exist in /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/Container.php:889 Stack trace: #0 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/Container.php(889): ReflectionClass->__construct() #1 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/Container.php(770): Illuminate\Container\Container->build() #2 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/Container.php(706): Illuminate\Container\Container->resolve() #3 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(120): Illuminate\Container\Container->make() #4 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(938): app() #5 /var/www/bookstack/public/wiki.php(10): trans() #6 {main}
Next Illuminate\Contracts\Container\BindingResolutionException: Target class [translator] does not exist. in /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/Container.php:891
Stack trace:
#0 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/Container.php(770): Illuminate\Container\Container->build()
#1 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/Container.php(706): Illuminate\Container\Container->resolve()
#2 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(120): Illuminate\Container\Container->make()
#3 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(938): app()
#4 /var/www/bookstack/public/wiki.php(10): trans()
#5 {main}
thrown in /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 891
What is missing in the PHP file?
Exact BookStack Version
v23.10
Log Content
No response
Hosting Environment
PHP 8.2 on a local system
@ssddanbrown commented on GitHub (Nov 7, 2023):
Hi @ikabod,
Attempting to use the app internals externally is really not something I can recommend, so I'm hesitant to spend time in supporting it here.
Can you explain what you're attempting to achieve?
The logical theme system may allow you to achieve the same goal which within you'd have full access to app internal functions.
@ikabod commented on GitHub (Nov 7, 2023):
Hi Dan,
there is a small web page with some elements and an iframe. In the iframe BookStack is running.
Some of the elements of the web page should be multilingual and translated during the page load.
Since Laravel is already installed, I thought it is possible to use their functionality?
The php file (name it app.php) is loading the autoloader, in the same way as in the index.php file (both are on the same directory). So I'm a bit confused why it is working in this file but not in another?
Or to be more precise: Why it is loading some classes, but do not find the class "translator"?
Thanks,
Peter
@ssddanbrown commented on GitHub (Nov 7, 2023):
Okay, I don't understand though why you don't built this as an app endoint where all the functionality you desire is already loaded? Instead of trying to replicate the app environment.
Because a lot of functionality is resolved through the app's containers, and the app instance registers and manages the classes to be resolved from the container for various parts of functionality.
In this case, when
trans()is called that tries to resolvetranslatorfor the container but that has not been registered by this point.@ikabod commented on GitHub (Nov 7, 2023):
Can you please let me know how to register the class
translator?I already have a logical theme in use with a folder "lang" to translate stuff, which I use inside BookStack.
If I can use this folder for the couple of strings for my application running outside, it would make my life much easier.
@ssddanbrown commented on GitHub (Nov 7, 2023):
This is really getting outside the bounds of what I'm willing to support to be honest, and into general PHP/Laravel learning.
From my point of view, you're trying to do things in a more difficult way then I'm advising while asking for my time to support that more difficult path.
If you really want to go down that path, then I would advise that you explore how the app instance is built (starting from
public/index.phpand how the app registers and manages services/classes in it's container).BookStack does do register the translator via it's own provider, to change some of the behaviour of a default Laravel setup. This can be seen here:
295cd01605/app/App/Providers/TranslationServiceProvider.phpUltimately, this is all linked into the app instance, container and config options of BookStack. If you expect to use user language preferences, that's another layer on top.
@ikabod commented on GitHub (Nov 9, 2023):
"From my point of view, you're trying to do things in a more difficult way then I'm advising while asking for my time to support that more difficult path."
Maybe your view is wrong, but I totally understand if you do not want to give support if you think this way.
Do you mind if I post a solution for the described scenario if I find any?
@ssddanbrown commented on GitHub (Nov 9, 2023):
Sure! Otherwise I'll go ahead and close this off.