microsoft / msphpsql

Microsoft Drivers for PHP for SQL Server
MIT License
1.8k stars 373 forks source link

Future planning #58

Closed gregrobson closed 5 years ago

gregrobson commented 9 years ago

This is more of a recommendation/request, rather than an issue.

The Go PHP7 group are looking to make sure that as many extensions as possible are ready for PHP7's release later this year.

Previously the SQL Server driver has been slow to keep up with new releases. Since moving to GitHub there have been a lot of improvements and 5.6 is supported :smile:

It would be really great if SQL Server was supported out of the box when PHP7 is released!

More information about Go PHP7 can be found on their own pages: https://github.com/gophp7/gophp7-ext

joe-udwin-lrn commented 9 years ago

+1 this is very important if you want the php community to continue using Sql Server. It would be good to get a commitment from this team that the driver will be ready to support PHP 7 when it is released.

luisdev commented 9 years ago

Having real built-in support for MS SQL Server in PHP would be a giant leap in giving PHP more credibility in the corporate space.

meet-bhagdev commented 9 years ago

Thanks for the recommendations folks. I am part of the team that builds the client drivers for SQL Drivers. I will pass this message along.

david-garcia-garcia commented 9 years ago

I'm maintainer for Drupal - MSSQL integration and I'm postponing any D8 work until PHP7 is out and stable.

PHP < 7 is too slow for any of the "modern" PHP frameworks that are about to be released. With 200% overal improved performance (I can confirm those numbers personally!) I guess PHP 7 is going to be the version to be adopted at a faster pace, even if that comes at the expense of leaving behind anything that is not PHP7 compatible.

200% improved performance means halving hosting bills (among other things) and makes the pain of moving away from MSSQL to something else economically feasible and reasonable.

Lfsantos commented 9 years ago

Hello,

We have PHP7 in our plans. I cannot comment on dates, but we will try to have it as close as possible with PHP7's release.

Right now, we are working on dates and scheduling.

Thanks

Sent from my iPad

On Jul 17, 2015, at 12:41 AM, Davvid notifications@github.com<mailto:notifications@github.com> wrote:

I'm maintainer for Drupal - MSSQL integration and I'm postponing any D8 work until PHP7 is out and stable.

PHP < 7 is too slow for any of the "modern" PHP frameworks that are about to be released. With 200% overal improved performance (I can confirm those numbers personally!) I guess PHP 7 is going to be the version to be adopted at a faster pace, even if that comes at the expense of leaving behind anything that is not PHP7 compatible.

200% improved performance means halving hosting bills (among other things) and makes the pain of moving away from MSSQL to something else economically feasible and reasonable.

Reply to this email directly or view it on GitHubhttps://github.com/Azure/msphpsql/issues/58#issuecomment-122205712.

theodorejb commented 9 years ago

PHP 7 RC 1 has already been released! I was hoping to test our application with it to help report any bugs before PHP 7 is finalized, but I can't without a driver for SQL Server.

gregrobson commented 9 years ago

It's for this reason that I will most likely be using a different database for future work. If it's not actively maintained (or a least has expected future release dates) it's very hard to plan future developments

meet-bhagdev commented 9 years ago

Hi @gregrobson, extremely sorry for the inconvenience. I do not currently have a date for you but I can assure you that we will have a driver available for PHP 7 in the foreseeable feature. I am going to talk to my team over the next few weeks to see how we can make this happen asap. How soon do you need a PHP 7 driver? Again apologies for the lack of communication.

Best, Meet Bhagdev Program Manager, Microsoft

stevenobird commented 9 years ago

I'd say that a ready driver at the expected release of PHP 7 (sometime in November) would be awesome.

But me (and I think other people too) would be ready to get an early preview of the driver - in other words asap :+1:

meet-bhagdev commented 9 years ago

Thanks @twaileit Let me start communicating this with folks on my team. Best, Meet

gregrobson commented 9 years ago

Hi @meet-bhagdev,

Thank you for your repsonse. I agree with @twaileit that sometime in November would be good.

I can't speak for others, but it was a long wait for 5.5 support (~16 months from PHP 5.5's release) - 5.6 support was quicker (~7 months). I know Microsoft have been having a bit of a shake up since Satya Nadella started and it's great to the code for the extension available on GitHub.

Obviously everyone is very keen to get onto PHP7 as soon as possible. With current benchmarks estimating it to be about 2x faster and with a lot lower RAM usage it's going to contribute to large cost savings for anyone who can run it. :moneybag: :smile:

brainfoolong commented 9 years ago

I also really need a PHP7 driver for windows as soon as possible. Our company start using PHP7 with the first stable version in Nov. 2015, we testing it since first usable DEV release. One thing that we need because we use a lot of MSSQL servers is this driver. That's the last thing that we need. PHP7 seems pretty stable with the current RC release. Currently we need an extra pipe to PHP 5.6 for the scripts that require the SQLSRV extension. Hope we will see this happen soon. Thx and greetz

meet-bhagdev commented 9 years ago

Hi @brainfoolong , Are you planning on updating to PHP7 as soon as it is released in November? As promised we are now working on the PHP7 driver but it is unlikely we will be able to release it so soon. We are looking a 5-7 month timeline right now. That being said, we might have a "preview version" be released a little sooner. Will keep you posted.

Best, Meet

tradetzki commented 9 years ago

5-7 month delay? You mean we should skip PHP 7 and wait for Version 8 or 9?

You did not really mean what you wrote. Or didn't i understood your post?

brainfoolong commented 9 years ago

@meet-bhagdev Yes we are planning to use it from start, November 2015. Simply because PHP7 have so much features we really want and need. Faster than ever, finally real 64bit support on windows with 64bit integers, etc...

joe-udwin-lrn commented 9 years ago

@meet-bhagdev PHP 7 claims to be "twice as fast" as PHP 5.x which means people will be keen to halve their hardware costs by upgrading. If SQL Server wants to continue to take any licensing revenue from PHP applications then I suggest your team finds some extra resources. It will be a humiliating for MS if Azure starts shipping PHP 7 with their PaaS apps and your customers can't choose SQL Server as their database engine.

meet-bhagdev commented 9 years ago

Hi all,

I did not mean to say that we will be delayed by 5 months. We have already started work on PHP 7 compatibility. I am going to talk to my team to see how we can expedite it as much as possible.

Unfortunately I do not have a date for the next release but I will update you as soon as I have something to share.

Apologies for the confusion and thank you for the cooperation. We are truly trying our best.

Meet

brainfoolong commented 9 years ago

@meet-bhagdev Nice to hear. You and your team deserve a cookie for this work, at least 2 when you get it done before Nov. 2015 :+1:

ghost commented 9 years ago

Really excited about php7 driver. Also we need to test the new php7 with RC versions but unfortunately we're missing the sql server pdo drivers. So we're waiting you guys. To test your pdo drivers and test php7 itself.

Please keep us posted about news...

Thanks

meet-bhagdev commented 9 years ago

Hi @mlhkr We are working very hard on these drivers. I still do not have a date set in stone, but stay tuned for updates.

J0r commented 9 years ago

+1 on @mlhkr have you got some news ?

stevenobird commented 9 years ago

It would be nice to hear how far you've come, since the final release of PHP7 is coming closer (ETA is set to November 12th).

If you need testers, feel free to provide development drivers.

meet-bhagdev commented 9 years ago

We are currently working on refactoring our driver to support the memory management improvements in PHP 7. We hope to get an early build available around January 2016 for testing on Windows. We will then continue our quality & testing work and hope to release both Linux and Windows versions when we reach our quality targets.

Hope that helps.

Thanks, Meet

serbanm33 commented 9 years ago

Thanks for update. Unfortunately this is too far into the future (at list for me) and existing projects most likely will remain with existing PHP versions and MS SQL, new one will start on other data base types. I understand that there is much work to do and many changes and we are grateful for all your work on this, but the time frame is too much in this case. Is better to have at list a basic working version (connect, select, insert, update, delete), comparing to no support at all.

brainfoolong commented 9 years ago

Also a way too late for me. We unfortunately cannot wait, we must add a really ugly and nasty proxy to PHP 5.6 for the things that require a MSSQL server connection. I'm thankful for all the work from the team on that but also i don't understand why such a driver need more than 6 months to get it working... At least when there is already a working driver for PHP 5.6. Anyway, looking forward for the first working release, fingers crossed that this not will be that much delayed as the current "MS Edge Extension support" :+1:

wmather commented 9 years ago

+5000000

I use PHP and MSSQL to get the best of both worlds, yet it appears I get punished for it. :(

J0r commented 9 years ago

Can you explain why that take 6 month to update the driver, we obviously don't understand this. Thanks.

meet-bhagdev commented 9 years ago

Hi all, My goal is to be as open and transparent as possible with this community so that you can plan accordingly. We are currently in the process of updating all our connectivity drivers in preparation for SQL 16 release while also incorporating change from PHP7 (and JDK9 for JDBC). We want align all the various releases and dependencies to make sure that our new PHP driver includes some of the goodness of the new version of the ODBC Driver that our customers can use with SQL Server 2016. As mentioned earlier we will have a functional build in January for the community to try and after that we will work to release as soon as we can. We will keep the community informed as we make progress.

tradetzki commented 9 years ago

Thanks for the clear statement. We will update our old servers now to SQL 2012 with PHP 5.6. PHP 5.7 (and e.g. SQL 2016) is out of scope now for the next years after reading this.

sirio3mil commented 8 years ago

Thanks a lot @meet-bhagdev, in my team we will do what @tradetzki, for now upgrade to SQL Server 2012 and still using PHP 5.6 and in January in our develpoment platform test your release. ¿it will be available in x64 version? Regards

meet-bhagdev commented 8 years ago

@sirio3mil : Yes it will be available on x64.

Thanks, Meet

atbigelow commented 8 years ago

Definitely of importance to my team. We would love to transition to PHP7 ASAP, but will need to hold off until a sqlsrv extension is available.

Yannix commented 8 years ago

Hi, PHP 7 has been released. Is there any plan ?

meet-bhagdev commented 8 years ago

Hi all, PHP 7 got released on December 3. We are aggressively working on the sqlsrv extension and are looking to release it as soon as possible.

Thanks, Meet

david-garcia-garcia commented 8 years ago

@meet thanks for the link I could not agree more. But it happens that PHP nailed the "business model" - if it can be called so - to end up powering more than 80% of the internet. Unluckily sometimes - more often than not - success is not about technical quality... and we technical people must bear the burden of what business is really like.

Hope to see PHP 7 support soon and that hopefuly some of the longstanding bus get fixed.

Thanks!

Yannix commented 8 years ago

@meet-bhagdev I can't understand why you point out that article, nothing to do with the actual issue ! And please look carefully this chart https://adtmag.com/articles/2015/12/03/~/media/ECG/adtmag/Images/2015/12/veracode.png .Net is not so far from PHP...

brainfoolong commented 8 years ago

IMHO also Offtopic because i also don't like that linked article for several reasons: As with every language, security comes with coding quality, not with the language features and syntax itself. This article just smoothly raging against PHP without a fundamental reason. But here we focusing to the PHP7 support for SQL server, and for that point, i really looking forward for some working stuff.

david-garcia-garcia commented 8 years ago

Last week I was approached by an Azure Canada technical sales saying "I have this two BIG government/public institutions wanting to move their workloads to Azure, and I am recommending them Azure PaaS, but I see your MSSQL driver for Drupal has some Azure MSSQL Issues".

After a few e-mails our mutual conclusion was that support for PHP and related componentes on Azure/Windows/MSSQL was too broken to be taken seriously and that they should be deploying their workloads on Azure IaaS using MySQL. So in the end they will be using Azure, but just to spin up some Linux with MySQL machines. I believe they would be better off at AWS that has a more Linux centric ecosystem.

I guess this is more on topic because it has to do with the level of support we are getting from this driver - which by the way I'm not complaining about because it has got much better than what it used to be - but still far away from something to be considered business ready.

So if MS wants to sell PHP on Azure - that is powering more than 80% of the internet so that is a big slice of the cake - (using MS technologies of course not a Linux/Nginx/MySQL virtualized setup) it is in their best interest to properly support this driver and other PHP ecosystem related pieces.

meet-bhagdev commented 8 years ago

Hi all, apologies for sharing that link. My goal with sharing that article was to inform that PHP 7 got released last week.

Just a quick update on this PHP driver, we are still working hard and looking for a late January release. I will inform this thread as soon as we have our beta release ready.

Thanks, Meet

camrada commented 8 years ago

@meet-bhagdev Great to hear... Any ideas on an approximate date for the beta release? Will be good to get some testing underway...

charles-durrant-tr commented 8 years ago

Hi

We are currently in the process of porting the sqlsrv driver to PHP7 as the Microsoft timelines don't meet our requirements and also the fact that each driver release restricts us to specific versions of the SQL server native client. This is noted in detail in Rob's blog post linked to below.

We have queries working (stored procedures etc) however our function usage is rather limited. We will soon be making the code available on GitHub and will also be combining it with Rob's code at:

http://robsphp.blogspot.com/2012/06/unofficial-microsoft-sql-server-driver.html

...which has a fix for a memory issue.

Going forward it would be good to know:

1) If you are using the PDO driver(pdosqlsrv) of the procedural driver (sqlrv) 2) What functionality you are using in each, notably for "sqlsrv" what sqlsrv functions you are calling.

We intend to support our port going forward as the driver is intrinsic to one our products so any help with usage patters would be great for our first beta.

Charles Durrant Thomson Reuters

david-garcia-garcia commented 8 years ago

@charles-durrant-tr @meet-bhagdev

Diverging efforts in something that has such a limited support is not the best idea.

If using the Github collaborative capabilities, people could chime in, fork and fix issues. It would be good for the driver if MS would actually use Github to develop and publish ongoing work, not only to publish the "finished" code.

Just an idea....

charles-durrant-tr commented 8 years ago

@david-garcia-garcia. I agree....but as Rob pointed out in his blog post each driver version limits the system to a particular SQL server client and for no beneficial reason. I am sure there are 'internal reasons for this but its not practical for us going forward.

I hate to hard fork code but we don't have a choice. There is no real support for this driver (well in the past there hasn't been) so we are keen to push this forward and fix issues proactively.

An example we have had hanging around for ages is out of order stored proc parameters. They are supported in PDO but sqlsrv doesn't support them. This is purely a higher level issue with sqlsrv as the core code is the same.

On the PDO note, we'd like to use PDO but it is so much slower than sqlsrv. All that being said we almost dropped the whole thing in favour of odbc PDO but there are binary level output parameters with the PDO base php library. That is on our list of commits to make to the core.

I digress, we will be supporting the driver and I hope (which relates to your point) that after time the project can become something handled by the community which I think will benefit all parties with the caveat that it doesn't become the old mssql driver that was very out of date.

If our works goes on to spur MS to work as you say on GitHub then we will have lost some effort but we will be very familiar with the code!

meet-bhagdev commented 8 years ago

Hi @charles-durrant-tr @david-garcia-garcia,

The Microsoft PHP driver is suppose to work with all SQL Server versions we support (SQL Server 2008 or later). Please let us know if you have had issues so that we can file them as bugs.

I definitely agree that using Github to develop and publish ongoing work, not only to publish the finished code is a good idea.

I will take that to our team and keep you posted of what we decide.

Thanks, Meet

charles-durrant-tr commented 8 years ago

@meet, your comments re SQL versions although very welcome don't add up - see Robs blog post as linked to in my comment. This issue has been around for years and has been commented on else where.

atbigelow commented 8 years ago

@charles-durrant-tr, Rob's blog post lines up exactly with what @meet-bhagdev just said. The ODBC driver is not the same thing as the database version. You acknowledge the true situation is the driver, not the database version, in your original post.

I would hope that both Rob's ODBC detection and your PHP7 fixes are able to be added into the official driver.

charles-durrant-tr commented 8 years ago

@atbigelowe, oops, yes correct, posting after a late night was not such a good idea!

We removed the checks in the driver a while ago as v3.1 or above required odbc driver 11 which was not possible to install on server 2008 thus sqlsrv version was forcing the server OS version and also the php version. An early morning after a late finish so apologies in advance for any inaccuracies.

We expect to post our beta code this week allbeit initially with our limited feature set requirements. If the outcome is a contributable project from MS on github then that is the best option.

As an aside we use wincache as apcu isn't happy on windows at the moment and that project has raced along in terms of PHP7.

charles-durrant-tr commented 8 years ago

....as a post script, for a time we supported Linux with our product and freetds was orders of magnitude faster than the MS windows offering. Database access was and still is our bottleneck and a 0.5gb Linux server was running web transactions ~2x faster than windows with 2gb ram under load testing. It was all down to freetds.

I digress from the focus of this thread but I think it is an interesting observation to share. It was also fascinating seeing the tabular data stream in action.

ghost commented 8 years ago

2016 has arrived at our doors. Any news or updates about the v7 driver?

meet-bhagdev commented 8 years ago

@mlhkr : Still working on it. Aiming for a beta release by the end of the month. Stay tuned as I will update this thread as we get closer.

Happy Holidays :) Meet