Learning Flysystem, or something that would work better for me

At my website, I would like for users to be able to share their writings, pictures, audio, and video with each other.

To do this, I think I might need Flysystem to communicate with a CDN.

Would you please tell me what I need to learn to make this, and if there is a better way besides Flysystem, at least for me? Does the publisher SitePoint, or their publisher partner O’Reilly, have any (preferably print) books on this?

To give you an idea of the skill level I need to continue from, in college, I passed two terms of Java, and one in data structures. I’ve read a book on JDBC (Java Database Connectivity), “Web coding & development all-in-one” (a long book in the For Dummies’s series), and “PHP & MYSQL: NOVICE TO NINJA” (published by SitePoint).

The only thing I can offer on this is that none of this will necessarily help you - I’ve read tons of books on all sorts of stuff, but what gives me confidence to do stuff is to sit down and start coding. There’s nothing like seeing something actually work to give you a bit of a boost, and seeing something not quite work to give you experience in figuring out why not.

And, of course, everyone is different. Plenty of people read books and can get enough from them to start going, and I’m equally sure that plenty of the very experienced coders that post on here have lots of experience in languages they’ve never read a book about. I have massive amounts of experience in an OS and its languages that there aren’t any books about.

Have you searched on here to see whether SP do any books on the subject? I’d have thought that would be a good first step.

1 Like

Have you read any design books? There are hundreds, probably thousands of books about design. I do not know what to recommend.

The professional way to develop an application is to begin with a requirements definition. It is explicitly not technical unless there is a definite requirement, such as a requirement might be what operating system must be used and/or what language if the company or organization has such a requirement. A professional would not just dive in.

Then you need to write system specifications that describes such things as the data (database) and the screens or forms.

Instead of a file system I think you will want to create a hierarchical table or some hierarchical tables. That is essentially what a file system is, at least the part you need. A hierarchical table is called many things, such as self-referencing tables. There have been discussions here about such things. See for example self-referencing tables - Google Search to get you started.

You mention CDN and I am not sure how that is relevant. If that truly is a requirement then include that in your requirements definition otherwise make that decision after you have decided the requirements.

When investigating a new subject, the three separate words to prefix searches followed by the subject are:

Tutorial, demo and examples

Here is one of many links from the “tutorial flystem” search which may be helpful:

If that involves storing the identification of artists in a first table, storing the location and names of files of their artwork in a second table, and letting users use the names of the artists in the first table to open files whose names are stored in the second table, I think I learned what is involved with that in “PHP & MYSQL: NOVICE TO NINJA” (published by SitePoint).

Okay, so, I need to learn advanced techniques, thank you. For what I’m working on, can I get away with learning some but not most of the advanced techniques, or do I need to read an entire advanced book? To give me an idea of what I’m getting into, how much more is most than some?

Okay, so, do I need to use those three separate words with the names of those more advanced techniques, which zee mentioned, and I asked about above? What are those names? It seems to me like there would be enough names for them to be in one (preferably print) book, which is what I’m still after.

I found the following books by SitePoint.

  1. Better PHP Development (June 2017)
  2. Jump Start PHP Environment (December 2015)
  3. Jump Start PHP (September 2013)
  4. Mastering The Faster Web with PHP, MySQL, JavaScript
  5. The PHP Anthology: 101 Essential Tips, Tricks & Hacks, 2nd Edition

And, the following is what I found by SitePoint’s publishing partner, O’Reilly.

  1. PROGRAMMING PHP : creating dynamic web pages
  2. Learning PHP : a gentle introduction to the Web’s most popular language.

Unfortunately, I couldn’t figure out if the amount of composer that is taught about in each of those books is enough for me to learn Flysystem with. And, I’m still looking for enough about both composer and Flysystem, for what I’m working on, in one (preferably print) book. I’m still looking for both in one book, because what I’m working on (which involves using the two together) seems to me like it is done enough to make publishers publish books about it, though I’ll admit I’m new to this.

To summarize, it seems like there are many advanced techniques. I think I need a lot of them, but I’m not finding them all in one place/book (with how to learn Flysystem), even though they seem very related to each other. And, I don’t know how to figure out if books (that are about what I need) will cover enough of what I need, or if they will only repeat what I already learned in other books, without being enough. Yet, it seems like what I want to do is very common. It seems like there should be an easier way. Is there?

It’s a bit of a guess on my part, but none of those titles seem to suggest the books cover particularly advanced topics - most of them appear to be a beginners guide to PHP.

You’re talking like Flysystem is this ginormous thing you’d need to learn. It’s not. The basics are really quite simple. For example if you use Amazon AWS S3 you create a class with credentials you get from AWS and then you can call a single method to upload a file from your server into an S3 bucket.

The advanced techniques everyone is talking about pertains more to PHP in general, in terms of abstraction, SOLID principles, all that stuff. And even though that is really really useful it is not required in order to use Flysystem.

I always advise to learn one thing at the time. If you’re interested in Flysystem, learn that. If you’re more interested in advanced techniques, learn that. The problem with learning two things at once is your mind will conflate them and draw invalid parallels and conclusions, making everything that much harder.

1 Like

I apologize. I thought you said filesystem, not flysystem. I do not know what flysystem is.

The three search words mentioned are to be used separately as mentioned in the following line:

“Here is one of many links from the “tutorial flystem” search which may be helpful:”

The reason behind the three words is that authirs writing an article would hopefully prioritize one of the words to help in their SEO FlySystem Article.

Thank you, that is very helpful.

Does that mean I should find a CDN, and I can learn from that CDN what I need from Flysystem? I thought differently, that I should learn Flysystem first, and then use it with almost any CDN. If I can do both, I’d prefer to do it the way I mentioned second.

I’m still very interested in answers to the following question, and learning about Flysystem from a print book.

Flysystem isn’t even in amazon.

I understood that I needed one of your three words with the word “Flysystem,” but I thought I also needed a third word. The third word would be the name of an advanced PHP technique. However, if I understand rpkamp correctly, I don’t need a third word, because Flysystem doesn’t require advanced PHP techniques. In addition to the three words you gave me, is there a fourth (or hopefully even more) that will result in (preferably print) books?

Flysytem is just a PHP library for storing files. Can be local or can be in a CDN. The beauty of the library is that you as a user don’t need to care about details of how exactly to store files, and if you ever switch from one CDN to another you just configure flysytem for the new CDN and no part of your code needs to change.

You can also use the S3 client for AWS for example, but then if you ever switch to let’s say Azure, then you need to change all the bits of your code that write to S3 to write to Azure instead. Which is a lot of work. Certainly a lot more that simply changing some configuration.

I highly doubt people have written books about Flysytem though because there really isn’t enough to tell to fill an entire book.

They do have documentation though. So maybe start with reading that?

2 Likes

Searching is a gray area and there are no hard or fast rules but plenty of individuals expounding their thoughts many without in-depth analysis.

Perhaps think from the book’s author view, how would they promote their book and what key words would they use to titillate potential readers?

I’m assuming I’ll need to use

$resource = $filesystem->readStream($path);

, which is at Filesystem API. Can I use $resource to make

  1. an open/play button
  2. code to change the screen size of video
  3. a download progress bar
  4. a volume control
  5. a bar that shows how far into audio/video users are, and
  6. rewind and fast forward controls?

(I seem to remember JavaScript being able to do some of this.)

No to all of those. Flysystem is about manipulating files on the server. What you are talking about is streaming a file from a sever to some video player. That’s up to the web server or CDN.
Conversion of one video format to another would still be done locally on your server like normal, before you ship it off to a CDN.

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.