 Okay. Ready? All right. So hi, everyone. Hi. Hi. So yeah, here there's two PHP echo statements here, which both of them, the first one might look a little bit weird, but both of them work fine. So here today, let me just do a very quick introduction about myself. Name is Sweeran. I'm a Fedora and Open Organization Ambassador. I'm also a Red Hat Developer Contributor. So I write about blogs, technical evangelists, essentially. So all of this is on a voluntary open source basis. So yeah, the Open Manage, the Open Organization book inspired me to do a lot of things for open source communities as well. So you might want to give it a read as well. Pretty nice book. So the agenda for today for me is speaking about PHP, migrating to PHP 5, migrating from PHP 5 to 7 is, so the agenda is the, so we're going to take a look at the buzzword first design. So you guys heard of buzzwords before? Yes, yes, yes. Great. So followed by three very simple checking. Check yourself, check your codes, check your systems. Very simple. All right. So buzzword first design. So I've designed my slides according to the latest buzzwords floating around in the technology space. So the things like award winning, microservices, innovative, cloud, robust, future proof. Yeah, this, all this kind of buzzwords you'll see in the following slides. Try to spot them. All right, so first thing is check yourself. So you got to check your knowledge, make sure you are updated to the latest PHP 7 staff. So don't bother reading a change log. There's a lot of information there. So look at a guide, the official PHP 7 guide on how to migrate from PHP 5.6 to 7.0. So on that guide itself, it tells you about a lot of things about the functions and the things that are being removed, how the, how the variables are being handled now. So there's a little bit of change. So now they are using abstract syntax tree for the handling the variables. So if you type your variables in certain ways, it won't work anymore. So got to check that if you are doing all right, object oriented programming. So got to check that. Yeah, so there's also some interesting, very interesting operators being added as well. There's a very weird one, which is a, which is a. Yes, yes, yes, that one is a very weird operator, which I found pretty interesting. You guys should take a look at that as well. So next thing is to check your codes. So look at the affected functions you have in your current code. So do a very, very quick look through all your codes. Okay, look through your codes. Yes, look through your codes. Make sure your code is robust and future proof. Yes. And look out for the microservices and dependencies. You know, you don't want your left pad to be, you got to make sure your left pad is PHP 7 ready. Right, got to make sure. And have you checked your composer.json file? Check if the dependencies are actually available, are really PHP 7 ready? Some, sometimes they are just completely, doesn't work on PHP 7 because the person who wrote the microservices or the dependency decided that it's not really important to update my code. Things like that happens. So make sure you check that before you hit the upgrade button. How do you check just like PHP minus L or something? So you have to read the dependencies. So look at the dependencies, look at their later support. So essentially look at their documentation. Now that's the best bet you have. So you got to try to trust their GitHub repo which says, oh, a build is failing on PHP 7.0 or build a successful build on this and that. But that means people have to use, does everyone use like some CI? Travis, things like that. Yeah, the cool kids use that. Yeah, the cool kids use that, yeah. Oh yeah, I would use that back in the day. It's cloud, so it's future ready, right? So test them out. There's several ways which you can test out your code. So you need testing as one of them. Or personally I do an open shift. So open shift plus PHP unit. PHP unit is a way to test out your code and stuff like that. So you got to bootstrap your code with whatever functions you need and then test it out, hit enter space and bam, your code is get tested. Or you want to do it a cool kids way. You can use Travis. Have you guys done Travis before? No, nobody use Travis. Yeah, two cool kids here. Three in total, yeah. So, and finally important question, does everything works in the cloud? So you got to make sure your code works in the cloud, right? So make sure your code really works across your infrastructure itself. And really deploy it the best way, the safest way which would be to fire up an open shift any instances or cloud instances or whatever instances, install PHP 7 on it and then give it a try. Look out for blank pages and things like that. So be careful of this kind of stuff like, oh the code works on the laptop. Let's deploy the laptop to production. You don't do that, right? So you got to always try to keep a lookout for things like blank pages as well. Blank pages is a very good sign which your code doesn't work on PHP 7. So you got to read through the error logs and this probably might take hours if all your codes are not using Laravel or Xen or whatsoever. But if you're using frameworks and things like that, they probably have it handled unless the code controller isn't PHP 7 really yet. So you got to check for that as well. Take a look, yeah, so make full use of PHP, you need testing and also Travis if you all know how to use. So last thing is you got to check your codes. So get ready for things to break, check your system, sorry. Check your system, get ready things to break essentially. So things would break, especially in production. So when you sometimes, you know, Murphy's law, you deploy it on a testing deployment infrastructure. It works there and when you deploy it to production, it doesn't work. So beware of software that in yours. So like one of the issues that I've encountered before is round cube. So round cube is a PHP mail GUI software. So I was running a older version of round cube and when I upgraded to PHP 7 beta, it just didn't work. Okay, it just completely broke. But all my other software, the codes that I wrote were all working fine because of course I'm a cloud ready guy. So, but the thing is, look out for all the software. You really want to look at every single software, look at their documentation, read up on their documentation. Really want to ensure that it really works on PHP 7 because although it might sound like PHP 5 to 7 is a very easy kind of no kick kind of upgrade, but there are always some things that you got to look out for. So be wary, again, do your unit testing, do your travels, whatever, check through them thoroughly, okay? So yeah, so this is kind of the codes that I've used to deploy the infrastructure. I made use of RIMI repositories. You guys sort of RIMI repositories before? RIMI? RIMI? Yeah, anyone? Read. How does it pronounce? Read? R-E-M-I. Oh. How? Where do you see that? So RIMI is a repository. So it's basically very cutting edge and up to date. It's a very up to date repository where you can get the very, you know, the updated codes and updated software. So during... Arch Linux, for example. Yeah, it's probably like Arch Linux, but it's a repository for, it has support for Fedora, BrickHand, enterprise data, SandOS, DBN, Ubuntu, things like that. So it's just a few commands away. So like app get, app get, install the whatever, and then app get, update, and you're done. That's a very quick way of installing, updating yourself to PHP 7. So any one of you tried PHP 7 yet? One. Wow. Okay. Okay. It sounds so scary. It's like all my stuff is gonna break. Oh. Yeah. Yeah, that lot of code would break. Yes. Some people might... Isn't that PHP 7 developing yet? Okay, I should have brought the gun with me. Whoa. All right, but isn't it a bit silly that a software makes it difficult to upgrade? It's... Usually good software makes it like really easy. Yeah, it's easy if you have keep your code updated. Yes. But a big problem... I thought you guys were using some form of a gel metology or scrum or... But even if you use agile, doesn't mean you have to like jump boops while using program. But that's the... That is purpose of semantic versioning. So like PHP 5 to 7 is a... Major version. So you're expected. PHP 7 over 5.6 has a 2.4 increase in performance. So I feel that it is a worthwhile increase to like build code on the internet. Sure, why not? What about the semantic versioning of C? C89, C99. They have a lot of apps. But the thing is that PHP compared to C is really like a first-world universe. PHP has this variously issue where... I mean, basis is constant. It's not properly synthesis. Not well-learned for a very hard-core program because of the way it's implemented. So if they want to make a big improvement... So when they're doing like a Python... Python 3, that's not going to roll out, is it? They're doing an IPv6. Moving from version to version in terms of the major versions, it's always been difficult. Only in shitty software? No. Only in shitty software? In... LAUGHTER I mean, in most cases... Enterprise. No, it's enterprise. It depends on me. OK. I suppose it's like PHP cares about all of the shimmy code you wrote back in the day, but C doesn't. So, what's the first thing to change, I guess? I guess they are trying to actually narrow down the campaign. They're not going to be able to be canned anymore. Yeah. You don't know why we skip 6. Because someone did a brunch. LAUGHTER I don't know why she did it. Oh, you can't assist him. He's sure you know why. Oh, yeah. They skip version 6 because it failed. They had too much problems with UTF. Assisting with what else? Yeah, there were a lot of issues which they couldn't resolve properly with version 6. But the features that they were trying to deliver in version 6 was backforted back into 5.3, 5.4, 5.5. So what you've been already using, 5.4, 5.5, or 5.5, you're already using some features that were originally meant to go out in 6. So in version 7, you probably have to... Move down. They all break something. If you try to turn on in your web version, you are using now, there is in the error logs, there's one level called deprecated. Turn on that error log for deprecated. It should tell you a little bit more, give you more information about what needs to be changed. It would make your logs a bit more noisy, but it does help prepare. It's advisable to have a separate... Just one instance, you've already seen, dealing with legacy code. Assess at what instance of it running, you try version by version, moving up one level by one level. Instead of jumping straight into 7, there's another approach you can take. Another way you can take this is write some tests. So if I was, if I say my code is already 5.6, then it's the other 7. Yeah. Yeah. If your code is already 5.6, chances are, it wouldn't break so badly. Or if it's too hard, they move to shell scripts. Moving on major versions of that is not an easy job. Even in Python, there's still... That's a lot like some of them are already shooting up. Also, for example, sometimes, popular language becomes a victim of our success because it's so popular, people are already using the latest version, and when you do systems with the one version, that's the latest at the time. There are companies out there, for example, in Rails world, right now it's Rails 4, moving to Rails 5. There's companies out there using Rails 2. Production companies like GitHub. You see using Rails 2, right? Yeah. It's not a unique problem that is faced by... You're working on a green field project, totally new, go ahead, build it out with PHP 7. Another approach you can take is build microservices. Just kidding. All right. So, yeah, pretty much that's about it. So, very simple. Nowadays, the popular thing would be to use frameworks and things like that, and it's pretty much a good move if you are doing big, bulky software that is enterprise. So, you use things like Zen Framework, Symphony, KTHP, or whatsoever. These frameworks are like what I said earlier on, PHP. They have to be ready for the next version of the PHP so that developers can continue working on their project. And that's about it. Any questions or any award-winning left-pad jokes you guys want to share? Any questions? Okay. Did someone like put these stickers on you or something? Yeah. Those are... That happened in forced Asia, so a few of my friends helped me put Fedora DVDs onto my body. What's a DVD? Thank you very much. All right. Thank you.