On Thu, Mar 30, 2023 at 04:42:41AM +0100, John Handelaar wrote:> It appears that I can't use anything in PHP8.2 if the PHP file from > which I want to access xapian contains a namespace declaration, > because the PHP functions themselves cannot be found.You need to tell PHP to look in the root namespace, e.g.: $test = new \XapianWritableDatabase('searchdb'); Another option is to import the things you want with `use` and then you can just use `XapianWritableDatabase` without to prefix it with `\`. To do that add this after your `namespace literallyanynamespace;` line: use \XapianWritableDatabase; Cheers, Olly
On Thu, 30 Mar 2023 at 04:58, Olly Betts <olly at survex.com> wrote:> > Another option is to import the things you want with `use` and then > you can just use `XapianWritableDatabase` without to prefix it with > `\`. To do that add this after your `namespace literallyanynamespace;` > line: > > use \XapianWritableDatabase;Thank you very much. This then (because of course) led to some more things needing tidying up and I've run into something I can't work out while trying to update previously-worked-in-php7 code in the actual file I'm trying to update $this->queryparser->set_default_op(Query_OP_AND); ...leads to "Undefined constant "App\Helpers\Query_OP_AND" because... another namespace issue? ("OP_AND" and "XapianQueryParser::OP_AND" are also not accepted.) jh