On the way we will find out that half of the libraries being used in vtiger are either outdated or actually completely deprecated.
I would say, we just start... there is no minimal changes that can be planned and outlined in advance, it's too much of a mess for that. I would like to throw in this existing merge request as being related to this issue already: !25 (merged)
Well the good news is that it does work at a basic level on PHP 7 in that it runs, I can log in, look around, save stuff, so it is a matter of finding actually broken things, and recoding stuff to avoid deprecated warnings.
@prasad: Good stuff, thanks for trying hard and succeeding with PHP7!
Regarding your fix in db3ef7f9, yes this will make split work. But I don't like it at all... it's dodgy and just working around the problem instead of tackling it properly. Instead of bloating up vtiger with code that will make deprecated code work, why not change the original cause of the problem and get rid of all split in vtiger code?
I hope you can comment why you chose this approach to fix things in this particular case... Looking forward to it.
@preexo - This was the minimal path I could think off.
Cleanup is a big-effort that could easily take couple of months, it deserves time (hoping to be taken ahead).
@preexo - Being backward compatible sometimes help to keep up existing code work. Think of extensions and customizations that is already in production and using split - this solution helps to keep thing work after upgade without a trouble than demanding or surprising - isn't?
@preexo - Absolutely right!
The possible explanation was just a quick fix to allow installation success.
I hope that workaround in not definitive because as you said feels dodgy and doesn't solve other areas.
I understand that vtiger is using some libraries that come from PHP4 age and which are still using those deprecated functions, but I don't think that vtiger can accept that and instead should update those libraries, go native or with completely different solutions. Backwards compability for deprecated libraries should not be an issue.
the PHPExcel library has some issues that cause 'break' not in the 'loop' or 'switch' context errors, where they do a return from a switch followed by a break (which is redundant and can never be reached)
switch (gettype($value)) { case 'integer' : return $value; break;
These could be fixed, but probably best to pull from upstream PHPExcel, however they don't appear to have a stable release for PHP 7 https://github.com/PHPOffice/PHPExcel
@preexo - @alanbell - I did some extensive tests with smarty3 ===== 3.1.30-dev ===== and it works out of the box. Just for reference in case you want to skip that library from your tests.
So, maybe that worth an update also.
There are some incompatibility that could be easily solved with PDFMaker in sidebar widget doesn't list properly the templates list for export, only shows an "A" in the (maybe if PDFMaker Developers see this post can fix)
There are quite a lot of notices generated by the cache, by using indexes that don't exist. I wonder if that is bad usage of the smarty template engine by the vtiger code or if the smarty engine is actually coded in such a dirty way as well... Haven't found time to investigate this further.
E.g.:
Notice: Undefined index: bill_city in /var/lib/shared/websites/custom/www/crmfresh/test/templates_c/vlayout/db44585e27becb6866d2e68c19bc4039a003481d_0.file.ListViewContents.tpl.php on line 119
@prasad - I agree, an immediate switch might be too much changes at once, but what about introducing it as suggested in my merge request !68 (closed) with only one or two libraries first. Then migrating all used libraries over to composer, one after another.
How does the approach not fit in the current framework? Which current framework are you referring to?