When making a request from one controller to another, how do I change the Input values? I originally assumed that Request->execute would assign the request parameters to Input, but it does not.
I am also interested if there is another way of doing this that might work better.
One of the big problems with the current codebase is the use of static class methods, which make everything global.
At the time of design it was assumed that you either call a controller method from the URL, or internally, but not both, so this issue was never addressed. Also, the assumption was made that params should be passed through the URI, and not using GET variables. Both URI params and data passed to execute() will be passed to the controller method called as arguments.
Obviously, this doesn't really work in the "WEB API age" we live in now, 5 years later.
I'll see if I can have another go at this issue without breaking BC.
I won't be able to test it today. Having trouble with the log file. The changes to fuel/core in commit c4fe3b4caec74a55631a82bf092d46ca66b44cef prevent the log directory and file from being created.
Unfortunately I won't be able to give you specifics until another week, as its now the start of a national holiday. But basically, the create_dir method was being passed the full log destination path rather than the log root path. Since the "base_path" did not already exist, the create_dir method threw an exception. The log filename ("10.php") was being passed to create_dir as the part to be added onto the base.
If I created the path in advance and re-ran the script then create_dir would pass OK, but then the actual log file itself could not be created by another function (which I did not investigate).
If you can wait, I will have time to go over it in detail next week.
That should be the case, create_dir() can recursively create the directories that are needed. The old code could not, therefore there were two mkdir() calls, one for the rootpath, and one for the basepath.