I need to completely rebuild/refactor a small directory/info service I run for blind people; it's too complex to maintain having been built in 2013, based on a now-deprecated thing called php-mini, last updated in 2015.
As it's not a commercial project, there's no advertising and no charge for users, this needs to be as affordable and boilerplate/bootstrap/turnkey as possible. I'm thinking Laravel or something based on it? Or something I've missed? I'm comfortable with PHP and MySQL but I've spent the weekend trying to find the closest match and there are many choices, including a bewildering array of Laravel packages, but I feel I've missed something in my searching which might help. So...
Here's what my service currently looks like: https://find.talking-news.info. Yes, back in the day, that was REALLY good for people with screen readers. Now it's an embarrassment.
users.userID <-> organisations.userID <-> publications.organisationID
For search results, I used a jaro-winkler-similarity mysql routine so that someone typing "macnhester" would get "manchester" rather than no result. https://packagist.org/packages/fza/mysql-doctrine-jaro-winkler-function
For the "nearest" results, I use SELECT *, 69 * DEGREES( ACOS( COS( RADIANS( latpoint ) ) * COS( RADIANS( lat ) ) * COS( RADIANS( longpoint ) - RADIANS( lng ) ) + SIN( RADIANS( latpoint ) ) * SIN( RADIANS( lat ) ) ) ) AS distance_in_miles FROM services JOIN (SELECT :lat AS latpoint, :lng AS longpoint) AS p ORDER BY distance_in_miles LIMIT 10
This means geocoding everything and storing it in my DB.
I would have thought Google Maps API would have this by now, but apparently not unless I'm missing something?
Finally, I see a lot of questions like this are closed with "not enough detail", or simply pointed to https://stackoverflow.com/questions/838028/choosing-the-right-php-framework and then closed. However, that page now doesn't exist and would be rather generic. Thanks!
You can use almost any framework for every task (in PHP). Any of them has its own advantages and disadvantes.
The ones I know are:
And all will do the job.
Symfony and Laravel have large community support and premade bundles components like admin panels, login etc. which can help you start your project.