Bug #77503 [Fbk->Opn]: COM does not work in v5.6
| From: | pch at astrowin dot org | Date: | Sat, 26 Jan 2019 01:53:22 +0000 |
| Subject: | Bug #77503 [Fbk->Opn]: COM does not work in v5.6 | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-219221@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=77503&edit=1
ID: 77503
User updated by: pch at astrowin dot org
Reported by: pch at astrowin dot org
Summary: COM does not work in v5.6
-Status: Feedback
+Status: Open
Type: Bug
Package: Unknown/Other Function
Operating System: Windows 8.1
PHP Version: 7.2
Block user comment: N
Private report: N
New Comment:
I am e-mailing you directly at ab@php.net. I can send you a .zip file with the DLL and a test
script. It does not appear this forum allows attachments.
Previous Comments:
------------------------------------------------------------------------
[2019-01-25 11:44:54] ab@php.net
Where do you run phpinfo(). WAMP distributions often use different php.ini for console and web
server bins. Please check that, too.
Also, if the assembly you use is 32-bit - use 32-bit binaries of PHP. Same for 64-bit.
To register your assembly, use
regsvr32 c:\path\to\my.dll. If you can share your
assembly dll, i could check it, too.
Hopefully that clarifies a bit more.
Thanks.
------------------------------------------------------------------------
[2019-01-24 19:39:31] pch at astrowin dot org
>> var_dump(class_exists('COM'));
Returns True for PHP v5.4 and PHP v5.6.
>> This is almost certainly caused by the php_com_dotnet.dll not
being loaded
I'll say it for the 3rd time, phpinfo() says that the com_dotnet extension is loaded and
active.
>> This might be a 32bit vs. 64bit issue (aka x86 vs x64).
I don't understand this comment when the two PHP versions are both run on the same Windows 8.1
64-bit machine, and XAMPP has been set up with the 64-bit versions.
I realize it is difficult to "debug" something without it right in front of you. But
can't someone take a .dll and test the COM function in different PHP versions, just as I am
doing? I suspect you will see what I am talking about.
In any case, for my local system, I'm thinking, "Why do I need to waste my time working
with PHP v5.6 - v7.2 when they don't work like v5.4?" The only reason I need this DLL is
because using exec() with Windows is very slow because of the forking that Windows does. If I could
get rid of that, then I would not need the DLL, which works at least 10 times faster than exec() on
Windows.
------------------------------------------------------------------------
[2019-01-24 12:31:30] cmb@php.net
> "Class not registered"
This might be a 32bit vs. 64bit issue (aka x86 vs x64).
> Fatal error: Class 'COM' not found
This is almost certainly caused by the php_com_dotnet.dll not
being loaded (like @nikic already suggested). Try something like:
var_dump(class_exists('COM'));
Also note that only PHP-7.2 and up will receive non-security
related bug fixes.
------------------------------------------------------------------------
[2019-01-23 18:59:16] pch at astrowin dot org
Yes, phpinfo said com_dotnet was installed and active. As I mentioned in my original note.
------------------------------------------------------------------------
[2019-01-23 09:30:41] nikic@php.net
If it says "Class 'COM' not found", that means that the extension is not loaded.
Please check if the extension is present (and not commented out) in your php.ini file.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=77503
--
Edit this bug report at https://bugs.php.net/bug.php?id=77503&edit=1