Composer multiple projects? - codeigniter

I am trying composer on some projects and wondering... actually I have installed a CodeIgniter 4 by composer in my httpdocs/ folder.
Now I would like to install Flarum (forum) as well to have it referenced in my project (like domain.tld/forum links to flarum instance).
Questions is: How do I get both up and running in the same space? I don't want to use a subdomain for Flarum.

You cannot combine these projects into one composer project. Even if the dependencies wouldn't clash, they will at some point.
In your comments you mention installing flarum in a subfolder of the public_html, this is the best course of action. There's no need to be afraid of critical files becoming web accessible if you follow the path customizing instructions in the Flarum documentation: https://docs.flarum.org/install#customizing-paths
Disclaimer, I'm part of the Flarum team.

Related

Should I add Backpack-installed Front-end Assets to Source Control?

I'm following the installation docs for Backpack 4.1 for Laravel. The backpack:install Artisan command adds front-end assets to the /public/packages directory of my project. Usually, front-end package managers (NPM, Yarn, Bower, etc.) recommend not to add the actual package contents to a project's repository, and instead add a dependency lockfile that can be re-installed by a CI/CD pipeline. Backpack does this differently, as it pulls the front-end dependencies directly and there was no mention if one needs to add /public/packages to source control. Should I add these package assets to source control, or should I execute php artisan backpack:install in the CI/CD process instead?
Yes - you should include the public/packages directory in your source control. That’s what Backpack assumes you’ll do.
However, if you would rather NOT do that, you can create an alias to the directory in the package. You can find instructions on how to do that here, as method 3 - https://backpackforlaravel.com/articles/tips-and-tricks/once-in-a-while-re-publish-backpack-s-css-and-js-assets
There are several reasons why you might want to do commit the public assets to the source control:
You may not have write access to your production file system.
You may be deploying to more than one server, and want to avoid duplication of work.
You may be doing frequent deploys that do not include asset changes.
Generally, I think it is a good idea to put precompiled assets into source control unless you have a specific reason not to do so.

How to Install PHPSpreadsheet in Joomla

I'm wondering how to best incorporate PHPSpreadsheet into Joomla! applications, on shared hosting.
With PHPExcel, you just uploaded the library.
PHPSpreadsheet is using Composer, which is new to me, but looks straightforward enough. However, I see Joomla! includes it to manage dependencies in the core, but does not publish the composer.json file, and commits the /vendor subfolder.
Any advice on the best way to safely add PHPSpreadsheet so its available to Joomla! extensions, without messing up Joomla! core?
You can just add a normal composer.json file in Joomla's root folder. Composer will then create a vendor folder on the main level, and leave the libraries/vendor folder unchanged for the Joomla core.
Any extension that wants to use libraries from the root vendor folder must take care of loading the corresponding vendor/autoload.php by itself.
use
JLoader::registerNamespace('PhpOffice', $pathToPhpOffice);
Similar lines to the above.... But how do you get PHPSpreadsheet installed on my hosted website, where I have limited access to the back end.
I can FTP to the root of the site.

Where Can I Directly Download Laravel Dependency Folders/Files from without using composer

For some reason, composer cannot work on my PC and wamp also (for now) so I downloaded the laravel zip folder, "laravel-master.zip".
I unzipped and uploaded this folder to my online production server but I noticed that I do not have the vendor folder. It was not included in the laravel-master folder.
So my question is... from where can I get the vendor folder (and any other folders/files) so I can manually add them to my laravel installation?
I will follow the same logic as the other saying. It is useless (and this is not recommended) to copy the vendor files because they are updated frequently and not stored.
the problem is that without composer, it will be difficult to work with Laravel (not only for class loading, but also unable to share your project later).
To use composer with WAMP, you probably forgot to specify during the installation, the php.exe WAMP to use. Located in C:\wamp\bin\php\phpx.y.z.
Here are two links that will help you achieve this. (You can uninstall your composer before to start from scratch)
Question and Answer about use composer in WAMP
Video about install composer and use it in WAMP
Then you just might be in the root of your project a composer update.

In laravel why the additional packages are stored in vendor directory?

I want to change the floder for additional installed package.How to change the floder path for additional installed packages.
Laravel is framework that depends on many other packages that has been built by the best in the PHP world and makes use of a dependency management tool called composer.
For Laravel to work her magic, she needs the help of composer to download all those codes that has gone through the test of time to assist her. composer would then place all of these codes into a folder specifically tailored for them which is the /vendor folder.
It seems that you need the power of some other codes to help you in your project. If that's the case, you might want to check out composer first for some basics before starting a new Laravel project.
You might want to check this video on https://laracasts.com to get a bigger picture as to how all of these things piece together.
Update
If you need to change the /vendor directory, you can simply change them in your composer.json.
"config": {
"vendor-dir": "new-vendor-dir-name"
}

Laravel 4 - Developing & deploying web application for other users

Although I'm new to Laravel 4, there has been one question on my mind since day one which I cannot seem to understand, nor find any information on.
My plan is to build an open source web application, which other users will be able to download and use on their own server. Now my current way of working is:
Install Laravel with composer
Add packages to composer than I need for the application
Start coding: editing files directly inside of app/ (global.php, routes, controllers, views, migrations etc).
Keep all of my assets within /public/assets/
This works fine for me, and I have no problems with it. However the question is:
How will I deploy the application to users if I build it this way? If they install Laravel via composer, all of the files within /app will be default (obviously), so how would I go about getting my edited + custom files into their install of Laravel?
Do I have to build the whole application as part of my own bundle? Or is there some kind of way composer can pacakge what I've done to solve this problem I can see happening?
I'm just throwing words out, if someone could explain and point me in the right direction that would be great.
Thanks.
You can just chuck all your files on github. You dont need to include composer. People can download composer and run it from the install directory (or if they have it globally run it from there)
If you run a composer install with laravel 4 only, it will download all fresh. In your case you just have all the library's in place already. So for future updates you as a developer can easilly upgrade to a newer version. The "users" can simply say "git pull" to update their instance. You still need composer to do your initial install (db seed, post install steps etc)
At least that is my point of view. Just look at a simple laravel 4 bootstrap example https://github.com/andrew13/Laravel-4-Bootstrap-Starter-Site it also holds all the files.

Resources