 Selamat malam, selamat malam. Selamat datang ke rambut terakhir tutorialnya. Sekarang saya akan cuba jelaskan bagaimana kita bisa membuat aplikasi desktop atau kita bisa membuat desktop GUI dengan PHP. Jadi saya akan memperkenalkan diri saya. Nama saya Yuri. Sekarang saya adalah user-group organizer di Malam PHP dan kerja saya hari ini adalah kerana saya remote worker dan kadang-kadang saya freelance. Biasanya saya melakukannya dalam program beg-end tetapi saya juga selalu melakukannya di depan. Jadi saya bisa berbicara di depan dan bahan. Tapi beberapa tahun lalu saya berminat dengan GUI dan UX tetapi dalam semua projek pixel, jadi saya bisa melakukan semua hal dari depan ke depan. Anda bisa menemukan saya lebih banyak di YURBETAMUX.ME. Oke, mari kita mulai. Oh iya, kita ada beberapa agenda atau plan. Yang pertama adalah perbezaan. Perbezaan adalah mudah. Perbezaan hanya... Saya akan beritahu nanti, sampai kita bisa melakukan beberapa kode. Mungkin Anda bisa mengikuti saya untuk kode dan Anda bisa mencoba bagaimana kita bisa membuat aplikasi desktop dengan PHP. Ya, perbezaan. Saya sudah beritahu dalam group selekt di wilayah. Kita butuh versi PHP 5.3 atau lebih. Dan kedua, kita harus memiliki kit karena kita perlu memutuskan repo. Itu dari repo saya atau repo yang lain. Dan kemudian kita perlu memiliki komposer di laptop kita. Ada komposer? Sudah ada? Mungkin... Mungkin kita bisa memiliki komposer di laptopnya. Dan kedua adalah editor-editor favorit. Mungkin aplikasi atau... Ya, itu di atas Anda. Dan kemudian... Pastikan PHP Anda bisa membuat dari CLI karena kita membuat program dari CLI atau dari browser. Dan kemudian internet koneksi untuk memastikan komposer dan kit clone berfungsi dengan baik. Ya, karena komposer saya sangat berbentuk platformnya sensitif. Dan ada banyak masalah dengan komposer saya. Jadi saya membuat kredit. Ya, saya beritahu yang ini menurut saya dalam prosesan saya. Ya, pertama, saya tidak memperkenalkan teknologi. Jadi, semua aplikasi atau aplikasi saya akan beritahu Anda bahwa pengalaman saya tidak minda. Jadi saya hanya mencoba untuk menggunakan dan menggambarkan. Jadi kita bisa membuat aplikasi desktop dengan PHP. Ya, yang serius adalah... Saya sangat minta maaf untuk penggunaan Windows karena ada beberapa platform-platform juga. Tapi anda bisa selalu menggunakan virtual. Virtual box atau VMware untuk memastikan Ubuntu. Ya, saya minta maaf sebelumnya. Tapi nanti saya akan beritahu bagaimana kita bisa membuat mereka di Windows OS. Ya, saya minta maaf. Jadi, untuk kali ini, Linux atau unik platform lebih preferable. Saya harap orang-orang yang hanya mempunyai Windows OS bisa memastikan Another OS via VMware atau Virtual Box. Atau... ya, bisa hanya melihat. Oke, ya, ini pengalaman. Nah, pengalaman terakhir adalah... hanya pengalaman basic yang saya akan menunjukkan... yang lainnya akan dipakai oleh diri kita. Karena api atau fungsi itu sangat besar. Dan kita tidak bisa menggunakan atau menggunakan 1-1. Oke, ya, bagaimana kita bisa membuat aplikasi desktop? Ada sesiapa di sini? Ada sesiapa di sini sebelumnya? PHP bisa membuat aplikasi desktop? Ya. Oh, lama. Apa tools yang Anda menggunakan? Atau apa yang Anda mendengar? Atau GTK. GTK, ya, GTK sangat lama. Saya mendengar sekitar tahun 2008, tahun 2010. Apa tahun ini? Lain kali. Lain kali? Ya. Ya, itu sangat... GTK dengan HP3, itu sangat... Ya, sekolah sekolah. Sekolah sekolah sekolah, harusnya... tahu tentang PHP, GTK. Ada sesiapa yang menggunakan aplikasi desktop dengan PHP atau desktop GUI? Atau tidak? Saya pernah membaca sesuatu, tapi tidak pernah mencoba melakukan apa-apa saja. Ya. Oke, ya, yang populer adalah PHP-GTK. Dan kemudian yang terakhir saya di sini adalah PHP-GTK2 yang mendukung PHP 5.5. Ya, masih tidak mati, tapi sangat sekolah. Ya. Sebenarnya, banyak tools, banyak platform dapat mendukung. Bagaimana kita dapat mendukung PHP program dengan aplikasi desktop? Tapi, ya, beberapa mereka tidak mendukung dan mati. Ya. Ada banyak tools yang dapat mendukung menggunakan PHP seperti... Siapa namanya? Damian. Damian, ya, Damian Tel, GTK atau PHP-GTK. GTK adalah GUI. Saya tidak lupa. Sebelumnya, saya akan beritahu tentang detailnya. Dan yang kedua adalah PHP Night Train. Night Train adalah tools yang sangat bagus, framework yang sangat bagus, tapi... Lain tahun, dia mati. Tapi saya... Saya masih ada... Saya masih ada... Ya, saya... Saya masih ada source code dari mereka. Dan ketiga adalah WX PHP, yang membuat WX Widget yang populer dari GUI. Dan kemudian ada Tite SDK atau Titanium. Ada sesiapa disini? Sebelumnya? Tidak. Tidak, ya. Saya gunakan sesuatu yang dipanggil Titanium. Ya. Sama atau Titanium? Sama, ya, sama Titanium. Tapi untuk porting PHP development, itu disebut Tite SDK. Dan sekarang mempunyai. Dan ya, saya hanya menjelaskan. Ada nama PHP QT, yang memulai framework QT. Anda harus... Anda pernah mendengar QT? Ya. QT. Dan kemudian yang terakhir. Yang terakhir. PHP desktop dan... Binder. Binder hanya memiliki Windows. Jadi pengguna Windows, saya mencoba yang terakhir. Satu. Karena... Ya. Karena pengguna platform tersebut, saya... Saya tidak menutupi Windows OS. Oke. Ada 1, 2, 3, 4, 5, 6, 7 poin. 7 pilihan yang bisa menggunakan PHP desktop. Ya. Tapi ada 7 pilihan... di depan. Saya tidak... menggunakan... mereka. Setelah itu, saya akan beritahu... apa pilihan saya... untuk... menggunakan PHP desktop. Ya. Ini beberapa... informasi di detil untuk GDK. GDK adalah platform tersebut. Jadi ini sangat sekolah. Tapi... GDK adalah lingkungan tersebut. Jadi GDK... bisa menggunakan lingkungan lain... seperti PHP, Python... dan lain-lain. Jadi... dia... menggunakan... menggunakan... dan menggunakan lingkungan lain-lain. Untuk menggunakan PHP program, ada PHP GDK... yang menggunakan lingkungan lain-lain untuk GDK Plus. Ya. GDK Plus adalah toolkit GUI. Jadi PHP GDK adalah pengguna... desktop GUI aplikasi. Nah. Yang terakhir, versi-versi PHP GDK adalah PHP GDK2... dengan penggunaan minimum... untuk PHP 55. Penggunaan minimum? Penggunaan minimum. Tapi saya... tidak pernah mendengar tentang... kembali untuk PHP GDK. Jadi... saya tidak menggunakan... GDK untuk tutorial ini. Tapi GDK sangat berguna. Banyak programmer... pernah mendengar... menggunakan tool ini. Ya. Yang kedua. Ini adalah penggunaan favorit saya. Tapi saya... penggunaan terakhir... sekitar 2 tahun lalu. Dan sekarang... Repo dan segala-galanya... tentangnya... ya... itu. Tapi... itu... memiliki... dan... saya beritahu... PHP Netrain... adalah ini... yang terbaik... karena... saya... tidak... harus... memiliki... dan memiliki mereka... untuk... porting PHP... menjadi desktop platform. Tapi penggunaan itu adalah Python. Python Installer dan WexPython. Ya, beberapa... poin... PHP 5 pre-compile. Jadi... kita bisa menggunakan... versi PHP... ke aplikasi ini. Jadi... kita bisa... menggunakan... versi PHP. Dan kemudian... jika saya memiliki... versi PHP atau HTML... aplikasi web... bisa... memiliki... custom-rate dan... ya, banyak... dan yang lain. Tapi... ini... teruskan. Dan kemudian... WexPython. Sebenarnya... hanya memiliki... web-rapper... untuk aplikasi platform. WexWidget. Jadi... WexWidget... memiliki... untuk PHP... disebut... WexPython. Tapi... selalu menggunakan native GUI... dan... masih di bawah kembali. Ya, itu SDK. Kita butuh SDK untuk memiliki... desktop PHP... hanya memiliki Windows. WinBinder... hanya memiliki Windows. Ya. Kita menggunakan PHP untuk membuat... aplikasi desktop. Apa yang bisa kita jawab? Apa yang bisa kita jawab tentang... aplikasi desktop... untuk seluruhnya? Ya. Ya, mungkin... seseorang bisa jawab... apa... masalah... untuk aplikasi desktop untuk seluruhnya? Atau... WexPython... untuk aplikasi desktop? Ada sesiapa? Kita akan memiliki... Semuanya... All the API in PHP... adalah untuk... server-side handling. Ya. Jadi... hanya bisa memiliki... aplikasi desktop... untuk aplikasi desktop. Kita akan menggunakan syntax... tapi... tidak ada komponen yang memiliki... aplikasi desktop. Jadi... semua komponen yang kita pilih... adalah... lagi berbeda. Kita harus memiliki... jadi itu bisa menjadi... kejutan. Oke, siapa lagi? Kejutan akan menjadi... syntax keluarga. Ya. Ya, oke. Siapa lagi? Plikasi desktop. Ya. Threpleg akan berubah... untuk... Oh ya. Ya, ini... ...perkunci... ...perkunci... ...perkunci... ...perkunci... ...perkunci... ...perkunci... ...perkunci... Oke. Siapa lagi... pernah... ...di sini... elektron? Ya. Kenapa? Elektron sangat populer... dan... ...dia lebih baik untuk memiliki... aplikasi desktop... untuk... HTML atau aplikasi javascript? Mungkin? Kenapa? Mungkin itu... itu... itu... itu populer. Oh ya. Ada banyak orang di elektron. Ada banyak orang menggunakan... tapi... ...banyak dari mereka... menggunakan aplikasi javascript. Oh, karena... javascript memiliki... memiliki... memiliki... memiliki... javascript. Ya, tapi PSP... bisa... memiliki... atau... lainnya. Kenapa elektron sangat populer... dan... dan... ini... bisa memiliki aplikasi javascript... dari javascript. Ya, kan? Elektron sangat populer... karena aplikasi javascript. Ada banyak orang menggunakan aplikasi javascript... dan mereka melihat cara mereka memiliki aplikasi javascript. Oh, karena... Kalau javascript memiliki... saya bisa juga memiliki aplikasi javascript. Karena... javascript memiliki aplikasi javascript. Oh, oke. Ya... sebenarnya saya menginspirasi... elektron... dan... sekarang... sampai sekarang saya masih... saya rasa kamu ada beberapa jengkel... karena jelasan javascript. Ya. Ya, dan jelasan javascript... saya masih... masih... jelasan javascript. Bila PSP... jelasan javascript... bisa... bisa... bisa kuat... untuk menggunakan aplikasi javascript... seperti elektron. Dan... saya mengusah... mengusahkan... mengusahkan... pada Google dan... ada beberapa jelasan javascript. dan jelasan javascript. tentang aplikasi javascript... yang ditutup dari PSP. Jelasan javascript. Sebenarnya... jelasan javascript... jelasan javascript. Kalau kita tidak... menutupi... jelasan javascript... seperti jelasan javascript. Saya rasa terasa akan berseksif... karena kita punya aplikasi javascript... yang berband erut... Dan, ya, klikable application. Now via localhost by browser, by AMP, Apache MSKL, and something like that. Is it like wrapping an HTML application written in PHP with the browser and packaging it as an active application? Ya, maybe, but still need web server, still need databases and some of others, so it can be individual bundled by its language. So, ya. Second one is application is loaded on its own native window because the GUI is the native window, so application is not loaded to the browser but it loaded in its own native window. The third is no need to install a web server and our PHP application desktop will run on Windows, Linux, and Mac, actually. So, to clarify, you cannot develop on Windows but once you compile, you can run it on Windows as well. Ya. This just claim for pros. Ya, maybe some libraries, framework, or plug-ins with PHP base, need GUI to control so. Maybe, some libraries or some framework often need GUI to control that. So, the end user will be easy to control. Ya, and then people are not always online. So, ya, some application will behave something with problem. Some data is too sensitive to be passed on the wire. So, this why desktop apps can be choice of notice application. Ya, embedded OSS does don't always work well with website. Ya, browser are just, ya, no, just quirky like internet explorer or opera and desktop rich internet application tools still, ya, still young. But there are any cons for PHP. Actually, PHP is designed for web, not for desktop environment. Agree with this statement? Ya. Ya, actually, ya, actually very bad and worst idea if we porting and our web full regular PHP application. So, we have full PHP application. We port it all or wrap it all into the desktop GUI with its web server, PHP binary, and databases. So, it's very bad idea because that pleasure I will tell you. I just cover how we can use the PHP language, pure PHP language for GUI, no web server, no PHP binary, no databases. Ya, in fact, seven tools that I told you last slide to go is some of them only wrap the web app as web view. So, if we have application web, web application such as Laravel or Symphony with its design GUI from HTML or CSS, some of them like PHP Nitrin is only wrap it into the GUI. But it can control the native GUI. Ya, when it said GUI framework, we will expected a way to make cross platform apps and it must have native UI control such as the menu, such as the button, ya, not as a web view with embedded PHP executable. So, I already tell you many platform or framework are abandoned or outdated, some of them dead and unmenting. I don't know why. Maybe this regular slide one, advantages of using PHP is no compiling, instant changes easy to use, fast to write and already use with familiar libraries and tools. So, we need solution about it. We want to create desktop apps or at least desktop GUI, minimum dialog one or text area one for the native GUI framework or window or design. Ya, I have solution for make OS or OSX. I found a good library or good framework called Pasua and for Linux and Unix, I will use the Xenity to create the PHP desktop application. Actually, the Xenity is supported in the OSX since the OSX based on Unix platform. But the windows, sorry before, Xenity already developed for Windows but this still long year ago but I don't try in the windows but the PHP GTK I think will work well in Windows. But I will cover for the tutorial only the two point for make OS is Pasua and the Linux or Unix is Xenity. So, Xenity applications won't run directly on Mac? It's same. Xenity can be installed via homebrew. Ya, I will... If I want to develop a Mac application, I can do it. If we want to bundle in the application. Or what? So, I want to develop OSX Xenity covers OSX as well, right? So, if you want just pure OSX, nothing else then you can go for Pasua, am I correct? Ya, like this. But the Xenity one is the GUI not so... for make OS but still good to choice. Ya, maybe this one is can be fold by make OS user. Ya, maybe. The Pasua has website. You can visit them. Oh, yep. www.bluem.net n slash Mac slash Pasua. And then the Pasua has PHP binding which is address in github.com slash bluem slash Pasua binding PHP. I tried to find it in Composer but I can't find one. So, we can download the library from its websites. Ya, download. Actually, the one is core app for we can have development in OSX. Okay. But the core app is .dmg.app. So, it's very weird but ya, it works. So, you can download the core app and place it on your application folder. And I have repository that I create for PHP binding. Actually, Pasua PHP binding is not created by me but my repo is edited for this tutorial purpose only. So, maybe we can do it now. We can download it from the websites and then make sure you have the Pasua is on your application folder. If the Pasua is already in application folder, it's all people here. The laptop is installed by Git, already Git in the laptop. Ya. Ya. So, you can clone my repository into the folders. Ya. We can create new folder for our source code. Like all PHP desktop. And we can clone from my repository. Ya. There is only two PHP files that very important. The first one is Pasua.php and the second one is Example.php. The another one with me is need by script and I place the PHP Conf Asia logo.pngg for example. So, if we already have Pasua in our application folder, so we can execute the script before I open it for editing the source, I try it. Ya. After we execute it, there is desktop GUI with Pasua. Maybe we can open it in our editor. Ya. If you confused by the code, we can create another one, the clean one. So, we don't need to follow this code. So, we create the new one. Ya. We can create the new one of application. Let's call Pasua Example. And we can answer the directory and open it in sublime. Ya. This very clean folder. At first, we need to create the maybe index.php and then we have to include the PHP part before we can use the PHP to communicate with Pasua. And then we have to require Pasua.php. Pasua.php is provided by my repository. So, we should copy it into our folder project. Ya. This Pasua.php we copy it into the new one. And we require it to the script. Ya, maybe the minimum version is not necessary but it must be tell the minimum version is 5.3. Oke. Next, we can add some script to Windows title. We can create the variable. The name is maybe text or title. Ya, text. Maybe text. Maybe we can set the title. Welcome to PHP Asia 2016. Ya, we need to use EO Conf to start and end the line. And we just can load Pasua.php from here. Ya. I don't think that EO Conf that name is important. Ya, very important. It can be anything. You have to edit it with the same. Ya, but if we deleted EO Conf. Can you just delete the app later on both the sites. On the start, on the end. If you delete the app, it will still work. Maybe we can try it. Ya. That is just PHP way of creating some string. That's all. Maybe we can try to the regular string one. Ya. And the custom location variable is must be filled by path to Pasua app that we download before to the Pasua.php in the application folder. Maybe the volumes Pasua or volumes Pasua slash Pasua.php. Ya. Maybe custom location can be application slash Ya, maybe something like that. Ya, this one this one is download if we mount the DMG. But if we create if we copy the Pasua app into the application folder we can call it something like that slash application slash Pasua.php. Ya. Okay. If it don't so we can we can use the Pasua function it call so dialog and we can pass the parameter from text, text variable and custom location variable so dialog and we can see the result Ya. Php Ya, this still error I will try to Ya, because if it has no eacon eocon is still error You try that first then we can do the test. Ya Maybe Oh, I think I Forgot Ya, require I combat Okay. Ya, we don't have any Ya, we don't have any Oh The example that we create is contain any elements so we can create at least one element some button some text Ya. We can create simple text which is maybe like this so we can create another name for the XT no strict for the XT name but the XT is free for use we can use another like text or variable one because this name is will be use like if we have HTML form filled but we can but we use the XT for the default Okay. Hello World Maybe the default text is Hello World Ya The first our Hello World desktop apps is created Ya of converting that into Maybe Hello World Hello from PSP conference Asia 2016 Ya This just one dialogue you can try it because it need minimum one elements like text or input text or button for this example is we only create one element called the XT you can try it already try Ya. Oh The Interesting things that Okay I will tell the secret Ya We can create the feedback from code to be printed in CLI so we have to print Ya, something like that Hello from CLI and every every element creation by Pasua is always give the result that from the elements so we can try it again Oh Okay Ya We can see but we can see in the CLI is feedback from the code print hello from CLI is Ya, ya, this will be needed if we want to make the feedback dialogue or make another dialogue or GUI every we give the action for the button or another Ya, maybe you can try it for the default one is only only few or only show the dialogue success ya this script maybe you can follow it You want to try the spring again Ya in the below of the font you can just make it a string and it should stay like this I mean above one the first one line 6 ya remove the oh just make it a string ya ya ya, because this need for the new line ya, so we can we can split the component or the elements the title is create for the text variable and the another is append to text variable so our code is easy to read so from my understanding so far ya it looks like it has its own scripting language and we are constructing that kind of script using our PHD skills and then pass that script to that and that is what we see is like a long way of touching your nose ya we can use the PHP manipulation for this app ya we can construct the script whatever we want in there but then ultimately we are constructing some script that is passed to another application and that constructs the thing ya maybe we can use if else to redirect to another dialogue maybe this one is maybe event php conference asia ya, like always we can replace it with variable ya so we still use the regular php language but we can bind it to GUI GUI component but we still need definition for desktop or GUI component type default, height, width or another else okay, if if you have been successful show the dialogue we can move to the next step maybe the sound ya ya okay our GUI application or desktop application is no only show the text but we can show the input text we can show the radio button we can show the we can show the select option drop down and we can also create the button element okay, let me ya, this one is for you can view in the documentation there are so many API to to follow there are element type button cancel button, checkbox, combo box date default button, image ya and some regular UI regular component is provided by pasua maybe we can try to another one the text variable is append by okay button maybe default button ya, example we can copy the example and create them and pass them to the code the default the type is default button and the label is maybe okay or click here to okay or proceed we can ya, we can have button to our desktop apps the interesting thing is you can show this you can see this we have array from the code after the button is clicked it calls db and the value is 1 because we have we have name the default button is db we can call it another name button 1 and then the second one is button 1 if we click the button 1 we have array from the code from the action we click the button ya, so we can have some manipulation to our desktop apps just use the feedback from button or from action in the form of the GUI maybe we can doing something like this ya, if result the array is button 1 is equal to 1 we can create another dialogue with another variable maybe we can call text 2 the text 2 is have content ya, almost same but we have to different them maybe something like that we have detail it confirmation and then we have to open another component to text 2 ya, maybe the text we don't have to define the height with x and y but we just to try it ok nah, since we click here to proceed we have upress ok so we can use the PHP language to manipulate the dialogue or the GUI component ya, we can free to use maybe if button 1 equal 1 we can show another dialogue or another text area ya, something like that if we want to create result we have to print like this this hello from CLI this result 1 this might be result 2 we just click the output the result 2 if if the component have no input component the result have nothing to display like this if we click here and hello hello from CLI oh, the result 1 I forgot ya, the terminal is should nothing because we don't have any component that have input text or action component like if in the HTML we have input type text or input type button input type radio button or input type checkbox ya, something like that is needed by GUI to return the value to CLI ya, any question? before I start I continue to another example can it communicate with the web server this desktop application maybe this just pure PHP language web server but if we want to web server or databases I think this one is can can be included in here for example my scale connect or something like that I think this is possible PHP client library so you use that ya, maybe I never use for it, maybe PHP some IP something like that or ya, I never use it for it but I think the we can use another option like databases or cases like this we have one website our staff have to update something on that website we can do a admin page or dashboard page to do that so that they can upload the data but that means I am making it available to public we can restrict it username, password etc but still I don't want public to see that page dashboard instead can I create a desktop application and upload the data to the server still you have the same thing right, so here the problem is the script also lives the person whoever you are giving it to if they can go and see the script they know exactly how you call that and they can call it themselves it is one layer of protection but then still everything is but that is possible from database application to server is possible any question anyone else so here I want to display dialog box ask them something like are you above 18 or not and then based on that I want to display some content so actually the PHP is passed at that time dialog box comes in and when I answer only then it proceeds I am just trying to understand the technology oh maybe we can try to create another example to show how interaction with input action like maybe we can swipe off the text variable and make the another in it has many API such as we can have the text the text is very important to us to pass the parameter pass the variable or pass the value to another page, another content ya, maybe the the text I'm sorry, the text box ya text box or text field nah, I'm sorry the text one is the example before ya, the text field is very important we can try to make it and show to the GUI maybe test the default maybe it's something like this should be placeholder the tool tip is if hover it for few seconds ya, maybe we can process that input and then start another screen or something ya, maybe if this maybe too small maybe I can use to put in this better ya this example for input text, we can enter it any string maybe our name John Do okay so this for default by default it close and does have no action I will try to create the action for text box ya, maybe we can name it maybe name for the variable name and then your name maybe default we don't need name, tool tip we don't need the tool tip we can run it again ya, okay we and then we need to catch the result from the show dialog the first show dialog we catch the result maybe we can check it in the CLI if we put my name here we can check in CLI name is my name ya nah ya ya default dnr1 I will create in below of the show dialog maybe we don't have to do that it is needed I am passing the execution until they take some action that seems to happen if that happens I can show another dialog saying hello ya maybe like this this result name result name so we can pass the name here okay we use your name John I just forgot to create the dialog for the text too ya, something like that we use your name is John Do element name has none of the attributes default maybe name type oh name default I just forgot who is your name my name is Yuri welcome something like that if we want to passing the parameter to the another dialog or we need to view the another dialog after the the last action we can do it so probably we can execute something in the background when something happens in the server like keep on pinging the server are you alive and when it doesn't get a response just scream like the server is down ya it is because it I tell my tutorial is not creating the psp application from html CSS and porting it wrap it to the desktop GUI but we use the psp technologies psp language to create the desktop interaction GUI maybe we maybe you can understand it because it's very different web view and the native GUI very different ya you can always try another API there are still many other component to try because if ya because if we don't try it we don't know how it works so the rest I hope you can try it for yourself the default action already I tell you okay ya ya ya ya ya ya ya ya ya ya ya ush interface logik memorize file ya ya The code is very crappy because it is very procedural, but sometimes I will try to manage them to easiest to read. If you want, we can write an object-oriented wrapper. So, you can use OOP or another method to manage the code. So, the code is not very procedural from top to both, from both to bottom. But, yeah, it's still very bad. So, they support Perl also similar to this. So, you can do it in Perl, again construct the string and pass it to Inko. Okay. But, what is the best language for desktop application development? Yeah, PHP is for web development, right? Yeah. So, if you want to do similar... It's a real platform as desktop. Some C-favorite language for that. Maybe, see, or Python is, I think, the good one for desktop. Okay. If you want to do cross-platform, then Java used to be the first one. Okay. Yeah, the sublime text is built from Python, right? Yeah. I think it's very fast. Very fast is... I think to compare the sublime and Atom is still sublime is fast, faster. Dan begin, why do you need to create a desktop application? Sorry, I didn't get you. Why do you need to create desktop application is the PHP? Oh. That is an option, but still you need a browser too. And one option to create a desktop application is to just wrap the server, everything inside an executable. So, when you run that executable, it will run in some port and it will open native window, which is a browser window. Internally, it loads the URL. So, it look like a native application. It won't have any browser screen where you type the URL, but it is a web page that is being run on top of it. So, how do you make it, like, when you click on an icon, this window appears? Oh, yeah. Maybe... Just create a share screen. Executable application. Yeah, I will provide it in later. Yeah. This may be the interesting because this one is... Yeah, I have to bundling into Clickable App. Yeah, I will cover it later. From Pashua, anyone? Any question? Maybe? No, I think we have seen enough. Yeah. Maybe we can... We want to see the next one. Okay, yeah. Just the first... Pashua is very... especially for OSX. Yeah, it's a tool for creating native Aqua Dialogue Windows. So, this exclusive for OSX, not for another platform. We had to... The another one is called Xenity. Xenity is... tools or... Yeah, tools or library that can create GUI... GUI for GUI framework. But Xenity has... binding for PHP. Maybe you can... install it... for Mac OS can install the Xenity from... from Blue, install Xenity. And the Linux or Unix, you can... always check with... apt-get install Xenity. But actually, in the Linux, Xenity is by default, so we don't have any... install. Okay? If... maybe I will try to... demo it into the... Linux. Yeah, make sure your... OS have... Xenity. If you're Mac... if you're... if you're in Mac OS, you can install it via... Homebrew. Yeah, Xenity. By default, Xenity is default by the OS, especially in Ubuntu. But make sure you can type in... the terminal and... view the Xenity... mean help... to view the option. Okay? If anything okay, I will try to... make a... make new project. We open tab... Xenity. Try. Yeah, we start with... empty folders. Maybe you can use... the Xenity option, maybe... calendar. Yeah. Automatic... appear, the calendar... dialog. But... we... use the Xenity. Ah... So, the Xenity is... can be... support the PHP language. We have to... clone. Yeah, there are... there is some library... available in packages... named... PHP Xenity React. PHP Xenity React is... PHP binding... to build GUI... graphical desktop... application for PHP. Yeah. Maybe you can... ah... in your empty folder. Yeah, because... in packages... PHP Xenity... Yeah, this... We can... require in the Composer. Maybe we can start the project with Composer in it. Ah... already have Composer in... DOS. Maybe you can... install the Composer... from... getComposer.org. Who are still not... have Composer in the laptops? Okay. Yeah. Windows... also support for Composer. Okay. So we can... continue or... Okay, yeah. Yeah, maybe we can... He cannot develop in Windows... Yeah. Yeah, maybe we can... start... our project with Composer in it. Yeah. Brutally enter. Oh. Maybe... Yeah. I always start the PHP project with Composer in it. Maybe we can... empty it. So we have Composer.org inside of our... our... project. And then we... require the... Xenity. I forgot the name. Clue. Xenity React. Yeah. This one is... PHP libraries for binding to the Xenity React. After we require the... Okay. We will wait... with it until it install in my... or in our project folder. Oh. This should... Yeah. Okay. Yeah, we should have vendor folder. Like always, we install via Composer.json. And then... require Composer. For... for instant use, you can... visit my repository for using Xenity for PHP. This one, you can... only clone it and install it via Composer. Or maybe you can follow my... my way. Yeah. We can create the... first file. Dialog.php. Yeah. The first step we... do is... we need to... write the PHP tags. Oh. Where is my repository? Oh. It's very bad. Continue it in Mac OS. Yeah. We can... use some... library from Xenity React. Maybe we... just use... info dialog. So we can... we don't have any... another. Maybe a... Yeah. The next step is... we must... require our... Composer in my... project. Maybe... we have to... require the autolot.php. Yeah. After the... after this, we can create... factory. Create. Yeah. Just create it. And then... we... have... loop variable from the factory create. And then... we... create the new launcher. Yeah. Maybe I will try to... Mac OS, but if... there is... anyone who... Ubuntu can... also can follow the... step because... it not different... from Ubuntu and... Mac OS. Yeah. I will... try... CD, PHP, desktop... M-Garder. Yeah. From... instant use... I will try to clone my... repository. Yeah. We have folder with... just one file... sub... dialog.php, which is have... some code. In the first, we... include or use the... library. And then we require the... vendor or composer. And then we create. And... we set the entry dialog. And... then we can... launch the... another dialog. Maybe the result will be... short like this. Oh. I just forgot the composer install. Okay. Yeah. Something like that. Watch your name, John. Okay. Yeah. Dari folder... It's... Dari folder... by variable. From... from this kind of... like... Pasua... from the... first dialog. And then pass it to the second dialog. M-Giving. Yeah. Maybe you can try it. Only the get 10 user is there. Tidak ada nama. Mungkin kita bisa coba pake launcher. Mungkin kita bisa coba komennya. Mungkin kita tidak butuh... Jadi queue basically gets... Ya. The queue variable is contain the text we input before. So we can just pass the variable from here. Mungkin this response like that. This response. Ya. Text. Mungkin we can delete it. John. Ya. Mungkin we can use a method like the password before. Ya. Mungkin we can print it. So we can view the variable from the queue. So yeah. This should the variable will be pass to the second one. Actually like this was that printed before even we filled up the form. Ya. So I think we have to var export after this. Put a var export after showing the dialog. So if you run it again. Ya. You can see that this comes out even before you fill that form. Oh. Ya. Mungkin... So you just execute again. Don't fill it. Ya. Ya. You see you go back there. Don't do anything ya. You see solidic printed. Ya. In the other example. Only when you said okay or something, then it printed. Or... Stop the execution there. Ya maybe this can be. Ya. We do it later. In here ya. Var export queue. Then function. This... The entry dialog is by default. Dia akan mengecewakan block pertama. Jadi, ini tak berlainan untuk mengecewakan. Ia menggunakan sedikit penjelasan, untuk menyebutnya nanti. Jadi, loop.run memiliki periksaan lagi dan lagi. Jika ada respon, itu mengecewakan. Jika tidak, itu tidak melakukan apa-apa. Ia akan terus mencoba sekali lagi. Ada apa-apa inputnya? Ya, ini akan mengecewakan di CLI. Mungkin kita bisa... Jadi, kita bisa menggunakan respon dari Q untuk menggunakan di dialog yang berlainan. Oke, Q tidak mengecewakan. Q? Di mana portnya Q? Q. Yang pertama adalah dari Q. Yang kedua adalah dari John. Respon itu mengecewakan? Ya. Mungkin itu tidak sempurna seperti Pashua. Karena kita harus mengikuti keputusan dari Xenity seperti fungsinya input dialog, info dialog, warning dialog, dan sesuatu yang lain. Tapi Xenity lebih berlainan dengan platform cross-platform. Mungkin Linux atau Windows bisa digunakan dan membuat OS bisa digunakan untuk membuat aplikasi GUI desktop. Tapi library masih tidak sempurna seperti Pashua. Ada pertanyaan? Tidak ada pertanyaan. Cuma banpoint. Tapi ya, kita bisa menggunakan apapun untuk menggunakan API, untuk menggunakan Mascale. Ya, sebenarnya kita bisa masih menggunakan databases. Karena file ini sangat sulit. Ya, masih PHP. Mungkin kita bisa dalam aplikasi, kita bisa mempunyai koneksi untuk databases. Ini mungkin. Tapi karena... Dan posisi X, Y, atau yang lain. Ya, karena tidak seperti CSS. Di CSS kita bisa menggunakannya sangat mudah. Tapi bagi contoh, di Pashua kita harus menggunakan koneksi X dan Y. Ya, mungkin seseorang membuat CSS untuk ini. Mungkin untuk memiliki interfacing atau styling. Mungkin sangat berguna. Tapi seperti yang saya tahu, aplikasi desktop harus seperti ini. Mungkin di Pascale. Ya, jadi desktop adalah desktop. Mungkin yang ini adalah untuk cache. Mungkin Anda melihat sesuatu. Mungkin Anda melihatnya sebagai CSS. Ini adalah untuk membutuhkan. Ya, kita harus... Kita hanya membaca tentang jenitnya dan sebagainya. Nampaknya ini koneksi command. Anda panggil command, memasukkan pilihan. Ia akan memberikan keputusan. Jadi, itu mengambil keputusan dari koneksi command dan memberikan keputusan di koneksi command. Itu saja yang berlaku. Jadi, semua perkara ini yang kita lakukan hanya memasukkan itu. Dan membuat keputusan. Mungkin jenitnya... Jika Anda melihat jenit.org, mereka memiliki contoh bagaimana Anda bisa membuatnya berhasil dengan shell script. Jadi, sebagainya Anda panggil jenit dan kemudian menggunakan calender. Ia akan memberikan ui calender. Apa saja yang mereka memilih, itu adalah perkara yang Anda dapat di koneksi command. Tapi kita hanya menggunakan pilihan PSP untuk memasukkan. Komponen GUI itu sangat... lebih berinteraktif karena kita menggunakan PSP. Saya tidak mengenai apa-apa yang kita lakukan dengan PSP. Saya mengatakan bahwa itu bisa dibuat dengan cara lain juga. Jika Anda memasukkan masa di jenit, ada cara lain juga untuk membuat Anda memasukkan. Ya, itu benar. Jadi, di koneksi command interface, Anda ingin memasukkan bagaimana data Anda berhasil. Dan Anda tidak ingin memasukkannya sebagai pilihan koneksi. Anda ingin memasukkan calender yang mereka memilih. Anda dapat menggunakan jenit. Anda memasukkan komponen calender. Jadi, mereka memasukkan data, kemudian itu akan memiliki koneksi command. Anda dapat memasukkan itu dan memasukkan. Oke. Ya, saya rasa itu lebih berhasil di Pashua, daripada di Sanity, tapi di Sanity itu lebih bergantung untuk menggunakan platform. Oke. Ya, ini adalah contoh yang kecil. Ini adalah contoh yang kecil. Untuk keadaan pilihan koneksi atau Pashua, Anda dapat selalu membuatnya dengan diri Anda. Pashua ini sangat... Anda dapat memasukkan lebih-besar. Dan di PHP, di Sanity React, kita dapat mempunyai... Ya, di Repositolist, mereka mempunyai sesuatu... Jadi, memasukkan koneksi command. Ya, mungkin. Kita dapat mempunyai sesuatu seperti itu. Kita dapat memasukkan koneksi atau sesuatu yang lain. Kita dapat memasukkan koneksi dan PAHP koneksi. Tapi masalahnya, semua koneksi di koneksi. Ya. Itu salah satu koneksi. Jadi, mereka tidak mempunyai koneksi. Mereka dapat memasukkan koneksi, jika mereka tahu cara memasukkan koneksi. Jadi, itu sebabnya PHP lebih baik dari server-side. Mereka tidak bisa memasukkan koneksi. Mereka tidak bisa memasukkan koneksi. Ya, ini... Jika koneksi memasukkan koneksi, itu sangat berbeda. Akhirnya, mereka dapat memasukkan koneksi. Mereka tidak bisa memasukkan koneksi. Oke. Sanity selesai. Ya. Jadi, sebenarnya kita mempunyai koneksi dari PAHP koneksi. Tidak, dari PHP. Tapi PAHP koneksi tidak terlalu susah. Tapi kita tetap mencari cara yang terbaik untuk membuat koneksi koneksi. Karena pilihan itu sangat seperti yang pertama. Ya. Mungkin koneksi 7 masih pilihan atau pilihan untuk membuat koneksi koneksi. Saya hanya mencari bagaimana membuat koneksi koneksi dengan PAHP dan Sanity. Karena saya rasa PAHP dan Sanity lebih baik untuk membuat karena memiliki koneksi koneksi koneksi koneksi koneksi. Dan ya. PAHP koneksi koneksi Sanity ada di koneksi koneksi. Yang lain seperti GTK VX atau Nitron sangat susah untuk mempunyai. Karena sangat kompleks. Dan membuat PAHP atau Web App. Ya. Sebelumnya, bagaimana kita bisa menghubungkannya ke aplikasi koneksi. Jadi kita tidak perlu menghubungkannya di CLI. Tapi kita bisa koneksi koneksi. Kita bisa menghubungkannya ke satu aplikasi dan kita hanya menghubungkannya. Untuk membuat PAHP kita memiliki Platypus. Platypus adalah koneksi koneksi untuk koneksi koneksi. Jadi kita bisa menghubungkannya karena koneksi kita ada dari koneksi. Kita bisa menghubungkannya dengan Platypus. Mungkin kita bisa menghubungkannya. Tapi Paswa sebenarnya memiliki cara bagaimana kita bisa menghubungkannya ke aplikasi koneksi. Tapi jika Anda ingin menghubungkannya kita hanya perlu Platypus. Mungkin saya bisa demo untuk Anda. Ya. Jika kita memilih Platypus kita bisa memilih aplikasi koneksi. Mungkin kita memiliki Paswa. Dan kita harus memiliki koneksi koneksi ke PAHP karena kita perlu memiliki koneksi PAHP yang diperlukan di sini. Dan kita memiliki koneksi. Mungkin koneksi yang kita memiliki Paswa. Koneksi. Ya. Kita hanya memiliki aplikasi koneksi. Mungkin ini akan dibuat di koneksi koneksi. Dan kita memiliki Paswa. Koneksi. Jika kita memiliki koneksi. Mungkin ada salah Paswa. Oh, mungkin koneksi koneksi. Oh, ya. Koneksi. Kita bisa memiliki PAHP karena kita masih perlu Paswa.php untuk memiliki aplikasi koneksi. Mungkin kita bisa memiliki koneksi lagi. Koneksi. Ya. Koneksi koneksi. Oke. Oke. Ini harusnya tidak memiliki koneksi. Oke. Ini sesuatu seperti CLI. Ya. Tapi jika kita tidak ingin memiliki CLI, kita bisa memiliki koneksi lagi dengan Paswa.php. Paswa.php akan oke. Sampai seperti ini. Tapi sampai sekarang saya belum tahu bagaimana untuk memiliki koneksi. Mungkin kita bisa cuba memiliki koneksi dengan Platibus. Mungkin memiliki koneksi. Mungkin koneksi. Karena memiliki koneksi. Mungkin kita bisa memiliki koneksi dengan Platibus. Namun koneksi. Mungkin tidak. Saya rasa tidak berhasil dengan koneksi. Karena tidak berhasil dengan koneksi. Tapi berhasil dengan Paswa. Ya. Yang kedua adalah kita menggunakan pilihan default dari Paswa. Pilihan default tidak sangat susah memiliki hanya sekitar 6 pilihan, 6 pilihan memiliki dan memiliki pilihan default atau aplikasi desktop, komponen GUI dengan language PHP. Ada tools lain. Mungkin kita bisa memiliki tools lain seperti GDK PHP, tidak ada masalah. Mungkin kita bisa memiliki jenit atau Paswa. Ya. Mungkin ada pertanyaan. Saya rasa ada yang mengerti. Ya. Ya. Ya, saya harap Anda mengerti dan mulai memiliki aplikasi desktop dengan PHP. Mungkin Anda bisa memiliki aplikasi yang bergantung. Mungkin jika kita memiliki beberapa framework atau beberapa libraries yang bergantung dengan PHP dan perlu menggunakan dengan GUI. Mungkin ini bisa menjadi pilihan karena saya tidak memikirkan jika Anda memiliki aplikasi full web dengan grapik HTML dan CSS untuk memiliki aplikasi GUI. Tapi jika Anda memiliki komponen, tidak ada masalah. language PHP hanya untuk menipulat atau kita menggunakan Mungkin Pasua memiliki sesuatu. Mungkin saya akan mencoba memberikan alat terakhir untuk Pasua. Saya mencoba memiliki opsi dari loop PHP. Mungkin kita mulai dari ini. Mungkin kita saja memiliki mungkin nama opsi. Mungkin kita bisa memiliki kombo box. Kombo box adalah memiliki struktur seperti ini. Kami adalah artis favorit Anda dari teks. Selanjutnya kita memiliki opsi. Kita mencoba memiliki opsi kita. Mungkin kita coba mencoba kombo box untuk Pasua. Kita bisa memiliki web app. Tapi di desktop app kita bisa mencoba mungkin ini kita bisa memiliki opsi array. Mungkin yang terakhir John. Yang kedua adalah Loram. Yang ketiga adalah Ipsum. Seperti biasa, kita bisa memiliki opsi dan kemudian kita bisa memiliki opsi array seperti nama atau persen dan kemudian kita bisa mencoba sebuah opsi persen. Anda butuh sebuah line. Ya. Ha ha. Sebuah opsi. Itu sebabnya, Anda butuh sebuah line. Anda hanya memiliki sebuah line kemudian persen. Oh ya. Ya, seperti ini. Jika Anda tidak memiliki itu, tidak akan berlalu. Kita mencoba. Mungkin Oh ya. Ya, John, Loram, Ipsum. Karena ini default, kromit. Mungkin kita bisa kita bisa menggunakan kondisi loop dari PHP ke kondisi manual tetap cara manual, tapi berhasil. Ya. Dan itu tetap bahasa PHP, kan? Oke. Oke, mungkin ada pertanyaan. Ya. Seluruhnya, saya rasa membuat desktop GUI dari PHP, tapi untuk beberapa perjalanan saja, tapi untuk semua perjalanan. Untuk contoh, jika kita ingin memulikan dashboard admin, aplikasi PSP, tidak rekomendasi, tapi saya rasa jika kita bermain dengan komponen GUI yang berkondisi dengan language PSP, itu sangat menarik dan sangat mungkin. Oke, ada pertanyaan? Ya. Oke. Terima kasih banyak, Yuri. Terima kasih.