[sword-devel] PHP SWIG Bindings and Extension Development

Greg Hellings greg.hellings at gmail.com
Thu Apr 13 07:32:09 EDT 2023


Without the missing std_list.i file, it won't. If they've added that into
their head, then you'll be golden. But it has been missing since the days
of PHP4.

--Greg

On Thu, Apr 13, 2023, 06:12 Patrick Stephan <pstephan1187 at gmail.com> wrote:

> Something I discovered last night is that swig installed from apt-get
> (which I am doing) is at version 4.0, which supports up to php 7.4.
> Tonight, I will attempt to build swig from source, which supports php 8.
> I’m crossing my fingers that that helps.
>
> - Patrick
> On Apr 13, 2023 at 6:05 AM -0500, Greg Hellings <greg.hellings at gmail.com>,
> wrote:
>
> Patrick,
>
> It has been a long time since I touched the PHP bonding build process. But
> the basic shortcoming you are encouraging is that Swig lacks support for
> converting a list from C++ into PHP.
>
> This isn't because PHP has no list, but because Swig bindings for PHP
> never got it added, at least not with the filename the other languages have.
>
> You will need to either go to the upstream Swig project and submit that
> feature, or write one and bundle it just for the PHP bindings directly in
> Sword. It's also possible the feature or include file is just different in
> PHP from Python and Perl, so if you discover that, then you could update
> our bindings to include the proper file. Obviously, in the spirit of FOSS
> collaboration, doing engagements directly in Swig would be preferred. Until
> then, PHP bindings will be unavailable unless you develop some other
> workaround to missing lists.
>
> --Greg
>
> On Wed, Apr 12, 2023, 23:06 Patrick Stephan <pstephan1187 at gmail.com>
> wrote:
>
>> Alright... So I've gotten a little bit farther...
>>
>> I was missing the `libtoolize --force` command before autogen. After
>> including that command and replacing the php4 references with php8 in the
>> php.m4, Makefile.am, and Makefile.in, I no longer get the "No rule to make
>> target 'phpswig'. Stop." error.
>>
>> When I run the `make phpswig` command, this is what I get:
>> ```
>> mkdir -p php
>> /usr/bin/swig -php -c++ -o php/Sword.cxx -I. -I/usr/include/sword
>> ./sword.i
>> templates.i:3: Error: Unable to find 'std_list.i'
>> make: *** [Makefile:972: phpswig] Error 1
>> ```
>>
>> That `std_list.i` file appears to be a swig file that is in its python
>> and perl files, but not in its php files. I imagine that is what is causing
>> this error. Does anyone know how to overcome this?
>>
>> - Patrick
>> On Apr 12, 2023 at 1:50 AM -0500, Peter von Kaehne <refdoc at gmx.net>,
>> wrote:
>>
>> I am not on my computer and speak from old memory but there is a two-step
>> for Perl so I guess that may be for php too .
>>
>>
>>
>> Sent from my phone. Please forgive misspellings and weird “corrections”
>>
>> On 12 Apr 2023, at 06:46, Patrick Stephan <pstephan1187 at gmail.com> wrote:
>>
>> 
>> Hello!
>>
>> First off, I want to thank everyone for their work in this project. It's
>> an incredible work to make God's word more readily available.
>>
>> As the subject of the email suggests, I am trying to interface with the
>> sword library with PHP. I am attempting to use the SWIG bindings provided,
>> but there are no current PHP bindings provided. There does appear to be
>> some older PHP 4 (PHP 8 is the current major version available) references
>> in the Makefiles and configure file in `bindings/swig/package/` and a
>> php4.m4 file. Attempting to run `make phpswig` (when you might run `make
>> perlswig` according to the readme file in the swig directory) returns a "No
>> rule to make target 'phpswig'. Stop." error. I have made some attempts to
>> replace `php4` with `php8`, but that changes nothing. Anyway, I am
>> attempting to create (or revive) PHP bindings for the sword library and
>> would love some direction on where/how to get started. I have practically
>> no experience with c/c++ or make files or swig, but if someone could give
>> me a shove in the right direction, I think I can figure it out.
>>
>> Thank you everyone!
>>
>> - Patrick
>> _______________________________________________
>> sword-devel mailing list: sword-devel at crosswire.org
>> http://crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
>>
>>
>> _______________________________________________
>> sword-devel mailing list: sword-devel at crosswire.org
>> http://crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
>>
>> _______________________________________________
>> sword-devel mailing list: sword-devel at crosswire.org
>> http://crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
>>
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page
>
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://crosswire.org/pipermail/sword-devel/attachments/20230413/d868aae2/attachment.htm>


More information about the sword-devel mailing list